public delegate void MyEventHandler(object sender, DataGridViewCellEventArgs e);
public event MyEventHandler SomethingHappened;
private void dataGridViewCargo_CellContentClick_1(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex >= 0)
{
DataGridViewRow rowID = this.dataGridViewCargo.Rows[e.RowIndex];
cargoDisplayMessageIdTextBox.Text = rowID.Cells["iDDataGridViewTextBoxColumn"].Value.ToString();
DataGridViewRow rowSender = this.dataGridViewCargo.Rows[e.RowIndex];
cargoDisplaySubjectTextBox.Text = rowSender.Cells["subjectDataGridViewTextBoxColumn"].Value.ToString();
}
}
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
Invoke(new MyEventHandler(SomethingHappened));
return base.ProcessCmdKey(ref msg, keyData);
}
第一部分在我選擇行時更新我的文本框。第二部分是對事件處理程序的嘗試。我想通過鍵盤瀏覽網格來更新文本框。所以無論藍色突出顯示的行都會自動填充文本框。通過使用箭頭鍵導航DataGridView來更新文本框
我試圖通過將其包含在dataGridViewCargo_CellContentClick中來調用事件處理程序,但發件人和e沒有通過並且我得到參數計數不匹配錯誤或委託給實例方法不能具有null'this'。這個想法是通過按下一個按鈕來調用CellContentClick事件。
任何幫助都會很友善。
CellContentClick實際上是一個不錯的選擇,因爲您必須擊中實際的內容。爲什麼你需要ProcessCmdKey? dgv應該自己做,除非它被解散。只需編寫CurrentCellChanged事件即可! – TaW