Ich habe eine Methode, die das Objekt ComboBox
und die Abfrage erhält, die auf die Elemente geladen werden soll.Programmgesteuertes Auswählen eines Elements in der Combobox mithilfe der ValueMember-Eigenschaft
Das Verfahren stellt auch für 2 weitere Artikel:
1.Die DB Spalte Namen der Tabelle und setzt sie in die Combobox
‚s DisplayMember
Eigenschaft
2. id jeden Datensatz unter dieser DB-Tabellenspalte Name und setzt es in die Combobox
‚s ValueMember
Eigenschaft
public void DatabaseColumnRecordsToCombobox(ComboBox cbx, String query, String displayMember, String valueMember)
{
try
{
cmd = new MySqlCommand(query, connection);
da = new MySqlDataAdapter(cmd);
tbl = new DataTable();
da.Fill(tbl);
cbx.DataSource = tbl;
cbx.DisplayMember = displayMember;
cbx.ValueMember = valueMember;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
this.CloseConnection();
}
}
ich die Methode verwenden, indem eine Abfrage mit 2 Spalten zu schaffen, die ID und ihren entsprechenden Namen. Und es in den ComboBox
‚s DisplayMember
und ValueMember
Speicherung:
DatabaseColumnRecordsToCombobox(cmbSupplier, "SELECT Id, Supplier_Name FROM Supplier WHERE Enable_Flag=1 ORDER BY Supplier_Name", "Supplier_Name", "Id");
ich für die lange Einleitung entschuldigen, ich möchte nur all verstehen, wie mein Programm funktioniert, bevor mein Problem zu erzählen. Das Problem ist also, wie wähle ich das Standardelement DataGridView
mit der ComboBox
's ValueMember
Eigenschaft?
Alles, was ich weiß, wenn ich ein Element programmatisch auswähle, ist cmbCategory.SelectedItem = "Supplier A"
, aber was ich brauche, ist mit der ValueMember
auszuwählen. Auf diese Weise kann ich das Standardelement per ID festlegen.
Es hat funktioniert! Vielen Dank! Aber wollen Sie nur wissen, ob es in Ordnung ist, eine Integer für Combobox1.SelectedValue zu verwenden? z.B. 'comboBox1.SelectedValue = 1'. Ich habe eine Ganzzahl verwendet und es funktionierte immer noch, weiß nur nicht, warum das okay war. Übrigens, ich liebe dich, Mann! #nohomo –
Ha ha kein Problem Mann! Eine ganze Zahl sollte ebenfalls funktionieren, da es sich um einen Objekttyp handelt. Sie sollten den gleichen Typ wie den Typ verwenden können, den Sie in Ihrem ValueMember haben. – MrApnea