Hallo, ich hätte da gerne mal ein Problem.
Ich versuchte gerade alle Comboboxen in einem Programm in eine Klasse "combo" auszulagern. zudem hab ich eine Klasse, die alle Datenbank-Arbeiten erledigt (cDBWorks, objekt hier: cDBObj), von dieser bekomme ich das Datatable als Rückgabewert einer Funktion. Das Problem ist, wenn ich die Daten für meine Combobox in der form.cs direkt anbinde, geht alles. wenn ich es mit einem Verweis auf das Objekt cmb (klasse combo) mache, wird in der Combobox nichts angezeigt. Hab ich vielleicht einen grundsätzlichen Denkfehler gemacht?
Hier jetzt das ganze als Kot:
In der Form:
cmbTitelVerwaltungVersion.DataSource = cDBObj.showVersionen();
cmbTitelVerwaltungVersion.ValueMember = "VID";
cmbTitelVerwaltungVersion.DisplayMember = "Vbezeichnung";
Was ich gerne nur hätte, wäre:
cmbTitelVerwaltungVersion = cmb.cmbVers(cDBObj.showVersionen());
Und in der Kasse combo:
public ComboBox cmbVers(DataTable dt)
{
ComboBox VERS = new ComboBox();
VERS.DataSource = dt;
VERS.ValueMember = "VID";
VERS.DisplayMember = "VBezeichnung";
return VERS;
}
Klasse cDBWorks:
public DataTable showVersionen()
{
ConnectionOpen();
string sql = "SELECT * FROM Versionen";
daVersionen = new SqlDataAdapter(sql, conn);
daVersionen.Fill(ds, "Versionen");
dtVersionen = ds.Tables["Versionen"];
ConnectionClose();
return dtVersionen;
}
Hi,
evtl. Groß-/Kleinschreibung:
"Vbezeichnung" <-> "VBezeichnung"
???
Thx, aber nein, das wars leider nicht. Keine Ahnung, warum es da einmal klein war. Entweder hab ich den Fehler schon korrigiert und ich erinnere mich nicht mehr daran... Kann eigentlich nur so gewesen sein.
Muss das Control eventuell den From-Controls hinzugefügt werden da es sich um ein neues Objekt handelt?
lg Lion
Hi,
@Lion1984: du meinst Form-Controls? 😁
Ja stimmt, das habe ich ja am Freitag gar nicht gesehen, daß weder der Parent noch die Location richtig gesetzt wird.
@dysfunktion: am besten, du schaust wie es der Designer macht (ich weiß aber nicht wie die Datei bei VB.NET heißt - bei C# ist es "FormX.designer.cs").
Wenn du eine ComboBox auf deiner Form noch siehst, ist es auf jeden Fall nicht die von deinem Code aus erzeugte!