Autor Beitrag
Taggert
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Di 16.12.08 14:06 
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

ausblenden 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:
ausblenden 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 user profile iconChristian S.: C#-Tags hinzugefügt
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: 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
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Di 16.12.08 18:30 
Dafür gibt es zunächst die SDK-Doku/MSDN. Wenn Dir nicht klar ist, was das ist, dann benutze in der IDE F1 oder Schau in die Doku! - Möglichkeiten der Informationsgewinnung. Die nötigen Stichworte habe ich schon genannt.

Jürgen
Taggert Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: 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:


ausblenden 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()
        {
            //DataGridViewButtonColumn button = new DataGridViewButtonColumn();
            //button.Name = "Edit";
            //button.Text = "Edit";
            //table.Columns.Add(button);
            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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 17.12.08 13:05 
user profile iconTaggert hat folgendes geschrieben Zum zitierten Posting springen:
Die auskommentierten Zeilen sind jene, die nicht klappen.
Was mach ich falsch?
Dass du nicht schreibst was nicht klappt...
Kompilierfehler? Laufzeitfehler? Passiert nix?
Taggert Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 17.12.08 13:26 
user profile iconJüTho hat folgendes geschrieben Zum zitierten Posting springen:
Befasse Dich lieber mit dem DataGridView, da ist die DataGridViewButtonColumn-Klasse schon vorgesehen.

user profile iconTaggert hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden C#-Quelltext
1:
        private DataTable table = new DataTable();					
Was soll ich dazu noch sagen...
Du kannst das nicht einfach mischen.

user profile iconTaggert hat folgendes geschrieben Zum zitierten Posting springen:
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 Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 17.12.08 13:33 
Die musst du dann auch benutzen.
ausblenden 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 Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: 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