2011-08-31 158 views
0

任何人都可以請幫忙嗎?DataGrid視圖按鈕列出現問題

我有一個DataGridView三列和一個按鈕列。

如果我點擊按鈕列,那麼該行中的所有值應該轉移到另一個表單。

注:我已經執行以下Click事件處理程序:

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) 
{ 
} 

難道還有比使用電池點擊事件的其他選擇?

非常感謝.....

+0

問題不明確,沒有問號和沒有明確定義的問題。 –

回答

1

嘗試CellContentClick事件。

單擊單元格內容時發生此事件。當用戶在按鈕單元格或複選框單元格具有焦點時按下並釋放空格鍵時,如果單元格內容在按空格鍵時單擊,則會出現兩次這些單元格類型。

http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.cellcontentclick.aspx

編輯:CellContentClick事件提供一個DataGridViewCellEventArgs參數,它包含了確切的列和行點擊。從我提供的鏈接中,我可以舉一個簡短的例子。我假設你想傳遞的值是字符串,並在第2,3和4列(分別是索引1,2和3)。 請注意,這未經測試!

if (DataGridView1.Columns[e.ColumnIndex] is DataGridViewButtonColumn && cellEvent.RowIndex != -1) 
{ 
    DataRow currRow = DataGridView1.Rows[e.RowIndex]; 
    SendValuesSomewhereElse(Convert.ToString(currRow[1]), Convert.ToString(currRow[2]), Convert.ToString(currRow[3])); 
} 
+0

如何在datagrid視圖中查找按鈕單元格,並希望獲得相應的行值...您是否想詳細說明您的答案 –

+0

沒問題,我會編輯我的答案。 –

+0

非常感謝...... –

1

假設你有前三列的數據,然後是第四列的按鈕。

一個快速和骯髒的方式來提取數據是:

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) 
{ 
    //If not fourth column then return (the button) 
    if (e.ColumnIndex != 3) 
     return; 
    object col1 = dataGridView1.Rows[e.RowIndex].Cells[0].Value; 
    object col2 = dataGridView1.Rows[e.RowIndex].Cells[1].Value; 
    object col3 = dataGridView1.Rows[e.RowIndex].Cells[2].Value; 
} 

您與e.RowIndex獲得點擊一行,並與e.ColumnIndex單擊列。 0是第一行/列。

+0

非常感謝..... –