在VB.Net中添加datagridview工具栏
我创建了一个自定义控件,它继承了datagridview并添加了一些自定义属性。我只是添加了一个停靠在其顶部的工具栏控件,这样它就可以具有添加行、删除行等功能。但它的显示如下图所示: 正如您所看到的,columnheader在工具箱控制下…我只是希望它们不要相互重叠…请帮助 编辑 我只是插入一个自定义属性,如下所示:在VB.Net中添加datagridview工具栏,vb.net,datagridview,custom-controls,toolbox,Vb.net,Datagridview,Custom Controls,Toolbox,我创建了一个自定义控件,它继承了datagridview并添加了一些自定义属性。我只是添加了一个停靠在其顶部的工具栏控件,这样它就可以具有添加行、删除行等功能。但它的显示如下图所示: 正如您所看到的,columnheader在工具箱控制下…我只是希望它们不要相互重叠…请帮助 编辑 我只是插入一个自定义属性,如下所示: Dim _Toolbox_ As Toolstrip Dim _ShowToolbar As Boolean Public Property ShowToolbar() As
Dim _Toolbox_ As Toolstrip
Dim _ShowToolbar As Boolean
Public Property ShowToolbar() As Boolean
Get
Return _ShowToolbar
End Get
Set(ByVal value As Boolean)
_ShowToolbar = value
If value = True Then
_Toolbox_ = New Toolstrip
MyBase.Controls.Add(_Toolbox_)
_Toolbox_.Dock = Windows.Forms.DockStyle.Top
_Toolbox_.Visible = True
Else
MyBase.Controls.Remove(_Toolbox_)
_Toolbox_ = Nothing
End If
End Set
End属性这里的问题是,
Toolstrip
是DataGridView
中的控件,因此其位置原点(0,0)是DataGridView
的左上角
在这种情况下,您最好创建一个允许您将Toolstrip
放置在DataGridView
上方的。您可以将它们都作为属性公开,这样您仍然可以访问控件自己的属性和方法,并添加一个属性以打开或关闭Toolstrip
的显示,并适当设置DataGridView
的位置:
Dim _ShowToolbar As Boolean
Dim _Toolbox As Toolstrip
Public Property ShowToolbar() As Boolean
Get
Return _ShowToolbar
End Get
Set(ByVal value As Boolean)
_ShowToolbar = value
If value Then
If _Toolbox Is Nothing Then
_Toolbox = New Toolstrip()
Me.Controls.Add(_Toolbox)
End If
_Toolbox.Location = New System.Drawing.Point(0,0)
_DataGridView.Location = New System.Drawing.Point(0,_Toolbox.Size.Height)
_Toolbox.Visible = True
Else
_Toolbox.Visible = False
_DataGridView.Location = New System.Drawing.Point(0,0)
End If
End Set
End Property
所有这些都来自brain compiler,因此其中可能有错误,但您应该开始使用它。使用拆分面板,然后将工具栏插入面板1,将datagridview插入面板2 如果你展示一些代码,我将非常乐意帮助你。这将有助于我理解你想要实现的目标。您是使用继承自定义绘制控件还是如何进行此操作?是的,我正在继承datagridview对象。谢谢,我将尝试应用您的建议。