我遇到了一个完全让我困惑的问题。
我有一个动态添加的包含许多列和行的 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
如果你们能建议我需要更改什么以实现此功能,我将不胜感激。
谢谢你的时间