Autor Beitrag
schwandi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 21
Erhaltene Danke: 3



BeitragVerfasst: Mi 22.09.10 16:02 
Hallo!
Sitze jetzt schon seit ca, 3-4 Stunde vor Googel! Aber ich finde einfach keine Lösung

Ich habe ein DataGridview, diese fülle ich mit Datenaus der Datenbank.

In einer Tabelle habe ich bereits eine "DataGridViewComboBoxColumn" hinzugefügt und auch mit Daten aus der DB gefüllt.

Nun möchte ich aber das bereits ein Eintrag selectiert is wenn mann die Tabelle aufruft.
Es soll der selectiert werden der auch in der Datenbank steht, und die anderen ComboBox items sind die möglichen anderen einträge

Jedoch besitzt ein DataGridViewComboBoxColumn keine eigenschaft names selectedItem oder ähnliches

Ich habe es mal mit vererbung von einer normalen ComboBox probiert:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
public class DataGridViewComboBoxColumn : ComboBox
        {  
            public DataGridViewComboBoxColumn CreateComboBoxColumn(int id)
            {
                DataGridViewComboBoxColumn column = new DataGridViewComboBoxColumn();
                
               Verbindung ver = new Verbindung();
                    foreach (string bewerbsname in ver.getallebewerbe())
                    {
                        column.Items.Add(bewerbsname);
                    }
                    column.SelectedText = ver.getInfo(ver.getBewerbfromTeam(id), "Bewerb""Name").ToString();
                
                return column;
            }
        }


aber wenn ich nun die methode aufrufen will:
ausblenden C#-Quelltext
1:
2:
DataGridViewComboBoxColumn col = new DataGridViewComboBoxColumn();
                       DataGridViewColumn bewerbcol =  col.CreateComboBoxColumn(ID_Team[0]);


kommt folgende Fehlermeldungen:
"Eine implizite Konvertierung vom Typ "WindowsFormsApplication1.bearbeiten.DataGridViewComboBoxColumn" in "System.Windows.Forms.DataGridViewColumn" ist nicht möglich."

Wenn ich jedoch DataGridViewComboBoxColumn nicht ableite funktioniert alles, nur leider ist dann in der Box kein Item selectiert weil es ja die eigenschaft nicht gibt

Gibt es da irgendeine andere möglichkeit ein Item zu selecten?

mfg Schwandi

System:
c# 2008 Express
Access DB


Moderiert von user profile iconKha: Topic aus Datenbanken (inkl. ADO.NET) verschoben am Mi 22.09.2010 um 19:58
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 22.09.10 19:58 
:welcome: in der EE!

user profile iconschwandi hat folgendes geschrieben Zum zitierten Posting springen:
Nun möchte ich aber das bereits ein Eintrag selectiert is wenn mann die Tabelle aufruft.
Huch? Wenn die Spalte korrekt gebunden ist, sollte das doch automatisch passieren. Sonst wäre die Klasse ziemlich sinnlos :) .

_________________
>λ=
schwandi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 21
Erhaltene Danke: 3



BeitragVerfasst: Mi 22.09.10 21:21 
Ist aber leider nicht so :/´

Die columne hat ja nicht einmal eine eigenschaft SelectedIndex wie eine normale ComboBox!
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 22.09.10 21:52 
Wie sollte sie auch? Es ist doch gar kein sichtbares Control, sondern nur das "Template" für die einzelnen DataGridViewComboBoxCell-Zellen. Und für die findest du in der Hilfe:
Zitat:
Unlike the ComboBox control, the DataGridViewComboBoxCell does not have SelectedIndex and SelectedValue properties. Instead, selecting a value from a drop-down list sets the cell Value property.

_________________
>λ=
schwandi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 21
Erhaltene Danke: 3



BeitragVerfasst: Mi 22.09.10 22:04 
Geht das also per Code gar nicht? :/
schwandi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 21
Erhaltene Danke: 3



BeitragVerfasst: Do 23.09.10 00:08 
Ok, danke habe die Lösung gefunden:
Einfach die Zelle ansprechen und den Value wert ändern, somit wird automatisch in der ComboBox der jenige eintrag selected den mann als Value übergibt:
ausblenden C#-Quelltext
1:
team[20].Value = ver2.getInfo(ver2.getBewerbfromTeam(ID_Team[0]), "Bewerb""Name").ToString();