[英]Why KeyDown event is not working with datagridview c#?
我是C#和使用Windows窗體的新手。
當我按下鍵盤上的向下箭頭鍵並找到keyDown datagridview
事件時,我正在尋找一個與datagridview
一起使用的事件。
我正在嘗試做的是:
假設我有4 rows
datagridview
,現在當我按下箭頭(在鍵盤上)時,我希望突出顯示(選擇)下降,並且在選擇行的同時,我希望事件檢查行字體顏色是否為是否為紅色,所以我使用以下代碼:
private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
{
int RowIndex = dataGridView1.SelectedRows[0].Index;
if (dataGridView1.Rows[RowIndex].DefaultCellStyle.ForeColor == Color.Red)
{
MessageBox.Show("This row font is red");
}
}
當我嘗試此代碼時,它不能很好地工作,問題是:
說:
Row0 font color = black
Row1 font color = red
Row2 font color = black
Row3 font color = black
現在選定的行是Row0
,向下按箭頭將轉到Row1
但不會觸發該事件。 現在選定的行是Row1
,當我按下箭頭向下時,該事件有效,但為時已晚,我的意思是當選擇Row1
時應將其觸發。
有誰知道我該如何解決(或其他任何想法)? 我只想在按下鍵盤上的箭頭鍵時檢查行字體的顏色? 謝謝
為此,您可以使用SelectionChanged事件首先通過以下行設置行選擇模式
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
這是選擇更改事件機制
private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
if (dataGridView1.SelectedRows.Count > 0)
{
int RowIndex = dataGridView1.SelectedRows[0].Index;
if (dataGridView1.Rows[RowIndex].DefaultCellStyle.ForeColor == Color.Black)
{
MessageBox.Show("This row font is Black");
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.