Suche datagridview auf Benutzer-Tastendruck
Ich versuche, wählen Sie die erste Zeile, wo der Wert der Zelle beginnt mit der gleichen keychar der Benutzer gedrückt. Das ist der Teil, der gebe mir Mühe.
Hier ist, wie ich die Handhabung der Falle (aktualisiert funktionierende Lösung):
private void dataGridView1_KeyPress(object sender, KeyPressEventArgs e)
{
if (Char.IsLetter(e.KeyChar))
{
for (int i = 0; i < (dataGridView1.Rows.Count); i++)
{
if (dataGridView1.Rows[i].Cells["Name"].Value.ToString().StartsWith(e.KeyChar.ToString(), true, CultureInfo.InvariantCulture))
{
dataGridView1.Rows[i].Cells[0].Selected = true;
return; //stop looping
}
}
}
}
Ich bin sicher, es ist etwas einfach, dass ich im Blick, aber für das Leben von mir kann nicht herausfinden, was es ist.
BEARBEITEN
Aktualisiert den code mit Lösung angewendet
InformationsquelleAutor Johann J. | 2009-04-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnte ein Fall Problem, ist der Wert in Cells["Name"] beginnen mit einem Großbuchstaben? Versuchen Sie es mit ToUpper oder ToLower auf beiden; oder Sie könnten versuchen, StartsWith(e.KeyChar, true), um ignoreCase. Wenn Sie versuchen, wählen Sie die Zeile, die Sie wollen, zu tun dataGridView1.Zeilen[i].Selected = true
InformationsquelleAutor SwDevMan81
Wenn der DGV ist eingerichtet, um Multi-Select -, dann würde natürlich wollen, deaktivieren Sie alle vorhandenen Auswahl.
InformationsquelleAutor xyz
Die bearbeitete Antwort in der ursprünglichen Frage nicht unterstützt, springen Sie zum nächsten Buchstaben, wenn es mehrere Instanzen von Namen beginnend mit demselben Buchstaben.
Hier ist eine editierte Antwort, die diese Funktion unterstützen:
InformationsquelleAutor
Dies ist ein VS2008 VB.NET DataGridView-Erweiterung bedeutete, zu tun, was Sie tun, aber mit einem Textfeld für die Suche nach Informationen (nicht über den Fall im Hinterkopf, aber könnte leicht Hinzugefügt werden). Diese Erweiterung arbeitet, so vielleicht gibt es etwas, die hilfreich sein könnten. Ich habe bemerkt, dass Ihr code eine Zeile auswählt mit select, wo die mine verwendet CurrentCell.
InformationsquelleAutor user39074
Ich diese in VB.NET. Sie können http://www.developerfusion.com/tools/ konvertieren zu C Sharp.
Schrieb ich eine Methode, mit der select-Zeile Buchstaben eingegeben haben. Die Funktion wird aufgerufen, in der KeysPress-Ereignis des DataGridView.
Methode:
Dann zu rufen:
End Sub
Hoffe, das hilft!
Amber
InformationsquelleAutor Amberlea Moore