Entwickler-Ecke
WinForms - Button in DataGrid
Taggert - Di 16.12.08 14:06
Titel: Button in DataGrid
Hallo,
ich bin noch ein rechte noob was C# angeht, aber ich versuch mich durchzukämpfen.
Zur Zeit beschäftige ich mich mit dem DataGrid Control.
Hier meine Frage: Ich würde gerne einen Button in die DataGrid integrieren, um automatisch einen Dialog zum Ändern der Daten auf zu rufen.
Aber irgendwie komm ich mit den Beispielen im Netz nicht ganz klar.
Ich hab mir eine Methode geschrieben, um den Header der Tabelle zu setzen
C#-Quelltext
1: 2: 3: 4: 5: 6:
| private void GenerateHeader() { table.Columns.Add("Art.-Nr", typeof(System.String)); table.Columns.Add("Art.-Name", typeof(System.String)); } |
Wenn ich nun eine Spalte einfügen möchte, dann muss ich doch so was schreiben:
C#-Quelltext
1: 2: 3: 4: 5: 6:
| private void GenerateHeader() { table.Columns.Add("Edit", typeof(System.Control)); table.Columns.Add("Art.-Nr", typeof(System.String)); table.Columns.Add("Art.-Name", typeof(System.String)); } |
aber ich weiss noch nicht richtig, wie ich dann den Button in das DataRow Objekt integriere.
Vielen Dank für Eure Hilfe
Grüße
Moderiert von
Christian S.: C#-Tags hinzugefügt
JüTho - Di 16.12.08 14:35
Hallo und :welcome:
Befasse Dich lieber mit dem DataGridView, da ist die DataGridViewButtonColumn-Klasse schon vorgesehen.
Außerdem empfehle ich (zumindest für den Anfang), für das Erzeugen einer DataTable den Designer zu benutzen. In der Designer.cs kannst Du dann nachlesen, was wie per Code erstellt werden kann.
Jürgen
Taggert - Di 16.12.08 17:06
OK, kannst du mir vielleichteinen Tipp geben, wie das mit der DataGridView funktioniert.
Ich wäre Dir wirklich sehr dankbar.
Grüße Taggert
Taggert - Mi 17.12.08 11:59
Hallo,
ich kämpfe immer noch mit dem DataGridViewButtonColumn. Ich hab noch nicht richtig verstanden, wie man deas ganze Ding der DataGridView hinzufügt.
Ich versuche mir über eine Datenbank (noch händisch) Daten auszulesen und diese dann in die Tabelle zu schreiben. Das ganze Datenbank gewurschtel spar ich euch.
Ich geb Euch mal meinen Quellcode:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| private DataTable table = new DataTable();
private void FillDataGrid() { while (Reader.Read()) { DataRow row = table.NewRow(); row[0] = Reader.GetValue(0).ToString(); row[1] = Reader.GetValue(1).ToString(); row[2] = Reader.GetValue(2).ToString(); table.Rows.Add(row); } dataGridView_Lager.DataSource = table; }
private void GenerateHeader() { table.Columns.Add("Art.-Nr", typeof(System.String)); table.Columns.Add("Art.-Name", typeof(System.String)); table.Columns.Add("Lager", typeof(System.String)); } |
Die auskommentierten Zeilen sind jene, die nicht klappen.
Was mach ich falsch?
Grüße Taggert
jaenicke - Mi 17.12.08 13:05
Taggert hat folgendes geschrieben : |
Die auskommentierten Zeilen sind jene, die nicht klappen.
Was mach ich falsch? |
Dass du nicht schreibst was nicht klappt...
Kompilierfehler? Laufzeitfehler? Passiert nix?
Taggert - Mi 17.12.08 13:14
Kompiliert leider nicht.
Hier die Fehlermeldung:
Die beste Übereinstimmung für die überladene System.Data.DataColumnCollection.Add(System.Data.DataColumn)-Methode hat einige ungültige Argumente.
Sorry, dass ich es nicht gleich geschrieben habe.
Ich bekomm den Button einfach nicht in die DataGridView integriert.
Grüße Taggert
jaenicke - Mi 17.12.08 13:26
JüTho hat folgendes geschrieben : |
| Befasse Dich lieber mit dem DataGridView, da ist die DataGridViewButtonColumn-Klasse schon vorgesehen. |
Taggert hat folgendes geschrieben : |
C#-Quelltext 1:
| private DataTable table = new DataTable(); | |
Was soll ich dazu noch sagen...
Du kannst das nicht einfach mischen.
Taggert hat folgendes geschrieben : |
| Ich bekomm den Button einfach nicht in die DataGridView integriert. |
Du hast ja auch keine mit table... :roll:
// EDIT:
dataGridView_Lager ist wohl deine DataGridView, oder?
Taggert - Mi 17.12.08 13:31
Doch doch, ich hab da ne DataGridView in die ich die DataTable einspiele.
dataGridView_Lager ist die DataGridView
Trotzdem Danke Dir für Deine Hilfe.
Grüße Taggert
jaenicke - Mi 17.12.08 13:33
Die musst du dann auch benutzen.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7:
| private void GenerateHeader() { DataGridViewButtonColumn button = new DataGridViewButtonColumn(); button.Name = "Edit"; button.Text = "Edit"; dataGridView_Lager.Columns.Add(button); } |
// EDIT:
Wie das im Zusammenspiel mit DataTable dann funktioniert weiß ich nicht, ich kenne die Klassen nicht, aber jedenfalls gehören die beiden Klassen so zusammen.
Taggert - Mi 17.12.08 13:41
:oops:
Ich komm mir gerade verdammt dämlich vor. Ich geh jetzt einfach mal in den Keller und versuch mir die Bretter vor dem Kopf wegzuhauen.
Ich hab das Attribut Columns vor den den ganzen ColumnHeader Attributen einfach nur übersehen.
Ich geh dann mal weiterproggen. Asche auf mein Haupt...wo ist schon wieder der Aschenbecher hin....
Danke Euch und die Geduld die Ihr mit mir hattet.
Verschämte Grüße
Taggert
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!