Entwickler-Ecke

WinForms - Textbox


armakedon5 - Di 07.06.11 10:37
Titel: Textbox
Hallo,

brauche eure Hilfe. In der DataGridView Tabelle sind Daten wie(nachname, vorname usw), wie kann Inhalt der ersten zellen in der jeweiligen Textboxen anzeigen, d.h gleich nach dem Starten sollen erste zeilen in der txt.. stehen.
dieser kod ist dafür, wenn man die zellen markiert und die Inhalt steht dann in der txtfelder:

C#-Quelltext
1:
2:
3:
4:
   if (e.ColumnIndex == 1)
            {
                txtPersonenName.Text = GridViewPersonen[nachname, e.RowIndex].Value.ToString();
                txtPersonenVorname.Text = GridViewPersonen[vorname, e.RowIndex].Value.ToString();



dankeee

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


Peter Bär - Di 07.06.11 11:44

Hallo

Eigentlich musst Du nur das machen, was Du geschrieben hast.
Also das DataGridView mit einer foreach-Schleife durchlaufen und die Zellwerte in die entsprechenden Textbox's einfügen.
Sollte eigentlich nicht so schwierig sein, sonst habe ich dich falsch verstanden.


armakedon5 - Di 07.06.11 11:52

danke für Atwort. Bin noch am lernen, kann nicht so gut mit schleifen umgehen, bitte um ein beispiel

danke


Peter Bär - Di 07.06.11 13:56

Also Mein Vorschlag:


C#-Beispielcode
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
// Textboxvariable setzen
String tb = "";

foreach (DataGridViewRow dr in DeinDataGridView.Rows)
{
    // Textboxname setzen
    tb = dr.Cells[int SpaltemitTextboxname].ToString();

    // Text einfügen
    tb.Text = dr.Cells[int SpaltemitgewünschtemText].ToString();
}


Die Textboxnamen musst Du entweder aus dem gleichen DataGridView einfügen oder von einem anderen Speichermedium (z.B DataSet etc.), die Du gleichzeitig durchlaufen kannst. Die Textboxbezeichnungen musst Du auf jedem Fall irgendwo speichern, damit Du mit einer Schleife die Zellwerte verteilen kannst.

Oder:

Die Textboxbezeichnungen setzt Du als Int-Werte, dann kannst Du mit einem Counter (i++) während des Durchlaufs die Textboxnamen automatisch erzeugen.


armakedon5 - Di 07.06.11 14:44

vielen Dank für Atnwort, habe probiert, hat nicht funktioniert

C#-Quelltext
1:
2:
3:
4:
5:
6:
 foreach (DataGridViewRow dr in DataGridView.Rows)
 {

txt_Str.Text = DataGridView[str, dr.RowIndex].Value.ToString();. 

}


SCHREIB IN DIE TXT diesen Text: DataGridViewTextBoxCell { ColumnIndex=0, RowIndex=3 }

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


Peter Bär - Di 07.06.11 14:55

Da hat es ziemlich viele Fehler:

foreach (DataGridViewRow dr in ?.Rows) // ? dein DataGridViewName
{
txt_Str.Text = ??[???].Value.ToString(); // ?? muss dr sein (Objekt der foreach-Schleife) / ??? Integerwert der Spalte (von 0 beginnend)
}

Ansonsten sollte es funktionieren, wenn (txt_Str) einer Textbox entspricht.


armakedon5 - Di 07.06.11 14:59

Hallo,

DataGridViewName so heisst der DataGrid


txt_Strasse.Text = dr.Cells[0].ToString();



user profile iconPeter Bär hat folgendes geschrieben Zum zitierten Posting springen:
Da hat es ziemlich viele Fehler:

foreach (DataGridViewRow dr in ?.Rows) // ? dein DataGridViewName
{
txt_Str.Text = ??[???].Value.ToString(); // ?? muss dr sein (Objekt der foreach-Schleife) / ??? Integerwert der Spalte (von 0 beginnend)
}

Ansonsten sollte es funktionieren, wenn (txt_Str) einer Textbox entspricht.


Peter Bär - Di 07.06.11 15:08

Du weisst nicht wie dein DataGridView benannt ist?

Meines heisst z.B. dataGridView1 :wink:

Steht sonst in den Eigenschaften des DataGridView unter Entwurf(Name) :o


armakedon5 - Di 07.06.11 15:11

habe den GridView selbst so benannt. DataGridxxxxxx jeder DataGridname entspricht die Methode

habe mehrere Grids


Peter Bär - Di 07.06.11 15:15

Sorry, ich verstehe Dein Problem nicht und kann Dir leider nicht mehr weiterhelfen.


armakedon5 - Di 07.06.11 15:17

Hallo,

es ist fast ja richtig, nun schreibt falschen Text auf texbox, nicht das was in der Tabelle ist

foreach (DataGridViewRow dr in GridViewAdressen.Rows)
{
// Textboxname setzen
strasse = dr.Cells[1].ToString();

// Text einfügen
txt_Strasse.Text = dr.Cells[0].ToString();

hier ist etwas faul

trotzdem Danke


Christian S. - Di 07.06.11 17:57

Hallo,

bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Richtlinien [http://www.entwickler-ecke.de/richtlinien.html]:

1.2 Beiträge:
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...]


Einfach oben bei Deinem ersten Beitrag auf user defined image oder user defined image klicken und den Titel ändern. Danke Dir!

Viele Grüße,
Christian