我遇到了一个让我完全陷入困境的问题。
我有一个动态添加的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
如果你们能够提出我需要改变的内容以便实现这一功能,我将不胜感激。
感谢您的时间
答案 0 :(得分:1)
也许你的按钮是在其他控件下,在将按钮添加到Tabcontrol控件后尝试调用oButton.BringToFront()
。