我有一个动态填充的数据网格视图。当用户右键单击datagridview中的单元格时,它会打开由该单元格定位的上下文菜单。上下文菜单有两个选项:A和B.我想在选中A时将单元格的值设置为A,如果选择B则将B设置为B.
我想理想情况下,我希望将相关的单元格作为传递给ContextMenu的ToolStripItem.click的事件arg中的字段传递。因此,ToolStripItem A的click事件的处理程序将从事件args中读取相关的单元格并将其设置为A,就像这样......
Private Sub A_Click(ByVal sender As System.Object, ByVal e As Customized System.EventArgs) Handles A.Click
e.relevantCell.Value=A
End Sub
但我无法弄清楚如何传递自定义事件arg。或者,如果有一些更简单的方法来做到这一点?我不能只使用X和Y坐标,因为相关单元格不需要上下文菜单/鼠标。
答案 0 :(得分:1)
可以将所需的单元格放在Tag属性中(接受对象),然后在菜单项单击中,从标记中获取单元格并设置其值
尝试:
A.Tag = Cell you want to set to A after A is clicked
Private Sub A_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles A.Click
CType(A.Tag, DataGridViewTextBoxCell).Value = "A"
End Sub
答案 1 :(得分:0)
将sender参数转换为ToolStripItem,然后使用该对象确定类型A或B.
If CType(sender, ToolStripItem).Text = "A" Then 'Or Text of A
'Work to Update Cell
End If