dataGridView受控上下文菜单单击

时间:2013-06-28 06:16:54

标签: c#

我想这样做,如果右键单击第一行并单击上下文菜单上的选项,它将执行特定功能,如果右键单击第二行,它将执行特定功能等。所以我已经尝试了几个不同的代码但没有工作,但这只是我的代码的简化版本,所以我怎么能按照我的意愿去做呢?

    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");
        }
    }

1 个答案:

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

    }
}