我的动态添加按钮(VB.NET)在哪里?

时间:2012-10-31 11:40:52

标签: vb.net datagridview

我遇到了一个让我完全陷入困境的问题。

我有一个动态添加的DataGridView,包含许多列和行,我想要实现的是mouse_up我希望在所选单元格上绘制一个按钮。因此,例如,如果我选择row3的前3个单元格,则应在3个单元格上绘制一个按钮。

我尝试使用每个选定单元格的X和Y并将其转换为按钮列,但这不起作用。我目前所拥有的示例代码只是向屏幕添加按钮,但它们不会出现在屏幕上(因此标题)。一旦我按下按钮出现在屏幕上,我将尝试在选定的单元格上绘制它们,但我需要首先克服这个障碍

这是我正在使用的代码:

    'I dynamically add the DataGridView
    Grid = New DataGridView
    Grid.Dock = DockStyle.Fill
    Grid.BackgroundColor = Color.White
    Grid.RowHeadersVisible = False
    Grid.AllowUserToOrderColumns = False
    Grid.AllowUserToResizeRows = False

    ...

    TabControl.SelectedTab.Controls.Add(Grid)

    AddHandler Grid.CellMouseUp, AddressOf Grid_MouseUp

    ...
   'On mouse up it calls the sub to add buttons
    Private Sub Grid_MouseUp(ByVal sender As Object, ByVal e As         System.Windows.Forms.DataGridViewCellMouseEventArgs)

    Dim i As Integer

    For i = 1 To 30
        NewButton(i) 'calls the dub
    Next i

End Sub

'这是子

Private Sub NewButton(ByVal ButtonNumber As Integer)

    Dim oButton As Button
    oButton = New Button
    oButton.Enabled = True
    oButton.Location = New Point(ButtonNumber + 50, ButtonNumber + 50)
    oButton.Name = "MyButton" & ButtonNumber.ToString
    oButton.Size = New Size(75, 23)
    oButton.Text = "Button" & ButtonNumber.ToString
    oButton.Visible = True

    oButton.Tag = ButtonNumber

    TabControl.SelectedTab.Controls.Add(oButton)
End Sub

如果你们能够提出我需要改变的内容以便实现这一功能,我将不胜感激。

感谢您的时间

1 个答案:

答案 0 :(得分:1)

也许你的按钮是在其他控件下,在将按钮添加到Tabcontrol控件后尝试调用oButton.BringToFront()