在VB.Net中添加datagridview工具栏

在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

我创建了一个自定义控件,它继承了datagridview并添加了一些自定义属性。我只是添加了一个停靠在其顶部的工具栏控件,这样它就可以具有添加行、删除行等功能。但它的显示如下图所示:

正如您所看到的,columnheader在工具箱控制下…我只是希望它们不要相互重叠…请帮助

编辑

我只是插入一个自定义属性,如下所示:

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对象。谢谢,我将尝试应用您的建议。