使用标题创建DataGridView(嵌入GroupBox)

时间:2012-05-27 12:44:14

标签: vb.net datagridview vb6-migration

我有一个DataGridView,我想把它放到GroupBox中。在VB6中它看起来像这样:

MsFlexGrid with Caption in VB6

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

我让它继承自DataGridView,因此它是一个Control,它默认拥有DataGridView的每个属性。

Public Class CaptionedDataGridView
    Inherits DataGridView

还必须有一个GroupBox:

Private xGroupBox as GroupBox

文本属性将被组框的文本以及一些大小和位置属性(顶部,左侧,宽度,高度)覆盖

Public Overrides Property Text As String
  Get
    Return xGroupBox.Text
  End Get
  Set(ByVal value As Integer)
    xGroupBox.Text = value
  End Set
End Property

最后,如果我在某个地方创建一个新的CaptionedDataGridView,它应该使用GroupBox来绘制自己。我如何从现在的位置到达我想要的位置?

1 个答案:

答案 0 :(得分:0)

我认为你必须以相反的方式做到这一点。从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添加到它。