1

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

VB6 中带字幕的 MsFlexGrid

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

我让它继承自DataGridView,所以它是一个控件,默认情况下它具有DataGridView的每个属性。

Public Class CaptionedDataGridView
    Inherits DataGridView

还必须有一个 GroupBox:

Private xGroupBox as GroupBox

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

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 来绘制自己。我如何从我现在的位置到达我想成为的位置?

4

1 回答 1

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 添加到其中。

于 2012-05-27T12:56:06.913 回答