Ich bin neu in C# und Windows-Formulare verwenden.Warum KeyDown Event funktioniert nicht mit DataGridview C#?
Ich war auf der Suche nach einem Ereignis mit datagridview
zu verwenden, wenn Pfeil nach unten Taste in der Tastatur gedrückt wird und ich fand KeyDown datagridview
Ereignis.
Was ich versuche zu tun:
lassen Sie uns sagen, ich habe datagridview
mit 4 rows
, wenn ich jetzt (in der Tastatur) Pfeil nach unten drücken ich das Highlight (Auswahl) wollen nach unten gehen und auf der gleichen Zeit, wenn eine Reihe gewählt ich das Ereignis, wenn die Zeile Schriftfarbe rot überprüfen will oder nicht, so habe ich den folgenden Code:
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");
}
}
wenn ich diesen Code versuchte es das Problem nicht gut funktioniert, ist:
Sprich:
Row0 font color = black
Row1 font color = red
Row2 font color = black
Row3 font color = black
Nun wird die ausgewählte Zeile ist Row0
, drücken Sie Pfeil nach unten geht es zu Row1
aber das Ereignis nicht ausgelöst wird erhalten. Jetzt ist die ausgewählte Zeile Row1
und wenn ich Pfeil nach unten drücke funktioniert das Ereignis aber zu spät, ich meine es sollte ausgelöst werden, wenn Row1
ausgewählt ist.
Wer weiß, wie kann ich es (oder andere Ideen) beheben? Ich möchte nur Zeilenschriftfarbe überprüfen, wenn ich die Pfeiltaste in der Tastatur drücke? Vielen Dank
Ist Ihr dgv jemals verwenden können in Bearbeitungsmodus? Versuchen Sie auch, eine Kombination aus Tastaturinteraktivität und Nachrichtenbox zu vermeiden! Gibt es eine Beziehung zwischen RI und RowIndex? Was für einen SelectionMode hast du? – TaW