2013-06-28 132 views
0

我想要這樣做,如果第一行被右鍵單擊並且上下文菜單上的一個選項被點擊,它將執行一個特定的功能,如果第二行被右鍵單擊,它將做一個特定的功能等等。所以我嘗試了幾種不同的代碼,但都沒有工作,但這只是我的代碼的簡化版本,所以我怎麼才能讓它按照我的意願去做呢?dataGridView受控上下文菜單點擊

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

你的目的是爲不同的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) 
    { 

    } 
} 
+0

謝謝,這個作品完美。 –

+0

很高興看到它的幫助。請將其標記爲答案 – Munawar