我想这样做,如果右键单击第一行并单击上下文菜单上的选项,它将执行特定功能,如果右键单击第二行,它将执行特定功能等。所以我已经尝试了几个不同的代码但没有工作,但这只是我的代码的简化版本,所以我怎么能按照我的意愿去做呢?
private void dataGridView1_MouseClick(object sender, MouseEventArgs e)
{
DataGridViewRow row = new DataGridViewRow();
if (row.Selected.Equals(0) == true && e.Button == MouseButtons.Right && contextMenuStrip1.Text == "Test")
{
MessageBoxEx.Show("Test ok");
}
}
答案 0 :(得分:1)
您的目的是针对具有相同菜单项单击事件的不同gridview行执行不同的任务。
1-在鼠标按下时,只需保存DataGridView rowIndex。
2-在菜单项单击事件中,使用保存的rowindex来决定您的不同任务。
3-由于鼠标单击将在上下文菜单后触发,因此使用MouseDown而不是鼠标单击事件。
int RowIndex = 0;
private void dataGridView1_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
if (dataGridView1.CurrentRow == null)
return;
if (e.Button == MouseButtons.Right)
{
RowIndex = dataGridView1.CurrentRow.Index ;
}
}
private void testToolStripMenuItem_Click(object sender, EventArgs e) //MenuStrip item click event
{
if (RowIndex == 0)
{
}
else if (RowIndex == 1)
{
}
}