Entwickler-Ecke

Datenbanken (inkl. ADO.NET) - Welche Row habe ich angeklickt


mo0n_ - Mi 25.01.12 15:35
Titel: Welche Row habe ich angeklickt
Auf ein neues meine Lieben :)

hänge immernoch an meinem DataGrid.
Diesmal lautet meine Frage:
Wie kann ich herausfinden welche Zeile ich gerade angeklickt habe.

Da ihr mich ja jetzt schon einige Zeit auf meinem Weg zum fertigen Programm begleitet, will ich euch ein paar Hintergrundinformationen geben:

Mein Programm soll eine Übersicht über die Firmen bieten mit denen meine Firma arbeitet.
Zunächst soll man sich auf unserem SQL Server anmelden können, woraufhin man ein minimalistisches Schaubild über diverse Firmen erhält.
Dort soll man die Funktion der Suche haben, sowie die Möglichkeit eine einzelne Firma via Doppelklick im Grid aufzurufen, woraufhin sich ein neues Form öffnen soll welches detailierte Informationen über die ausgewählte Firma (zB Ansprechpartner, verwendete Hardware, TeamViewID...) enthält.

Nun hänge ich daran die Detailansicht der Firma zu öffnen.

Hier seht ihr meinen bisherigen Quelltext:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
private void Datenblatt_Load(object sender, EventArgs e)
        {
            this.kontakteTableAdapter1.Fill(this.datenbank1DataSet2.Kontakte);

        }

        private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            Details dlg = new Details();
            dlg.ShowDialog();
            
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            kontakteBindingSource1.Filter = string.Format("Firma like '%" + textBox1.Text + "%'");
        }


Ralf Jansen - Mi 25.01.12 16:39

Da du scheinbar über eine BindingSource bindest wäre das wohl über BindingSource.Current am einfachsten zu lösen. Zur Property gibt es auch ein entsprechendes Changed Event an der BindingSource wenn du darauf reagieren willst das die focusierte Row gewechselt hat.

Annahme. Du meinst mit 'angeklickt' nicht wirklich angeklickt sondern jede Methode die die ausgewählte Row ändert.


mo0n_ - Mi 25.01.12 17:05

Du hast natürlich recht mit dem was du sagst.
Ich binde über eine BindingSource und der korrekte Befehl lautete:

C#-Quelltext
1:
 this.dataGridView1.CurrentRow                    


Vielen Dank :)