用户单击上下文菜单的工具条项后如何传递自定义事件arg

时间:2012-03-28 21:18:11

标签: .net vb.net

我有一个动态填充的数据网格视图。当用户右键单击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坐标,因为相关单元格不需要上下文菜单/鼠标。

2 个答案:

答案 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