Vb.net 创建带有标题的DataGridView(嵌入到GroupBox中)

Vb.net 创建带有标题的DataGridView(嵌入到GroupBox中),vb.net,datagridview,vb6-migration,Vb.net,Datagridview,Vb6 Migration,我有一个DataGridView,我想把它放到一个GroupBox中。在VB6中,它如下所示: 因此,它只是一个由GroupBox包装的MsFlexGrid。我完全不知道如何在VB.NET中实现它 我让它从DataGridView继承,所以它是一个控件,默认情况下它拥有DataGridView的所有属性 Public Class CaptionedDataGridView Inherits DataGridView 还必须有一个GroupBox: Private xGroupBox

我有一个DataGridView,我想把它放到一个GroupBox中。在VB6中,它如下所示:

因此,它只是一个由GroupBox包装的MsFlexGrid。我完全不知道如何在VB.NET中实现它

我让它从DataGridView继承,所以它是一个控件,默认情况下它拥有DataGridView的所有属性

Public Class CaptionedDataGridView
    Inherits DataGridView
还必须有一个GroupBox:

Private xGroupBox as GroupBox
文本属性将被组框的文本以及一些大小和放置属性(顶部、左侧、宽度和高度)覆盖


最后,如果我要在某个地方创建一个新的CaptionedTagRidView,它应该使用GroupBox来绘制自己。我怎样才能从现在的我到我想去的地方?

我想你必须反过来做。从GroupBox继承并向其中添加DataGridView

简单的例子:

Public Class MyGrid
  Inherits GroupBox

  Private _Grid As DataGridView

  Public Sub New()
    _Grid = New DataGridView()
    _Grid.Dock = DockStyle.Fill
    Me.Controls.Add(_Grid)
  End Sub

  ReadOnly Property Grid As DataGridView
    Get
      Return _Grid
    End Get
  End Property

End Class

当然,您不必作为自定义控件来执行此操作。您可以在表单上放置一个GroupBox,然后使用相同的DockStyle.Fill属性将DataGridView添加到表单中。

我也考虑过这个问题。我认为从DataGridView rahter继承比从GroupBox继承更好,因为这样更符合逻辑。因为我使用了DataGridView中的很多属性,只使用了文本框的Text、Left、Top、Width和Height属性。当然,这是解决我问题的有效方法。
Public Class MyGrid
  Inherits GroupBox

  Private _Grid As DataGridView

  Public Sub New()
    _Grid = New DataGridView()
    _Grid.Dock = DockStyle.Fill
    Me.Controls.Add(_Grid)
  End Sub

  ReadOnly Property Grid As DataGridView
    Get
      Return _Grid
    End Get
  End Property

End Class