ComboBox SelectedValueChanged richtige Platz finden

30/11/2009 - 16:20 von Andrej Golubew | Report spam
Hallo zusammen,

beim Starten von der Anwendung fülle ich ComboBox aus.

Wenn die User in die ComboBox andere Wert auswàhlt, dann soll es in Label1
dargestellt werden.

Leider klappt es nicht. Weil SelectedValueChanged findet früher statt als er
mit Daten gefüllt wird.

Ich habe
this.cmbServer.SelectedValueChanged += new
System.EventHandler(this.cmbServer_SelectedValueChanged);

von InitializeComponent() in ServerComboBoxFuellen() verschoben. Es geht so,
nur nicht richtig. Der Wert wird nur angezeigt, wenn ich in ComboBox ein
Eintrag auswàhle. Die erste Mal muss es automatisch passieren, wenn der
Anwendung gestartet wird, gleich nachdem Füllen von ComboBox.



private void ServerComboBoxFuellen()
{

DataTable dtServer = new DataTable();
DataColumn dtcServer;
DataRow dtrServer;

dtcServer = new DataColumn();
dtcServer.DataType = System.Type.GetType("System.Int16");
dtcServer.ColumnName = "id";
dtServer.Columns.Add(dtcServer);

dtcServer = new DataColumn();
dtcServer.DataType = System.Type.GetType("System.String");
dtcServer.ColumnName = "name";
dtServer.Columns.Add(dtcServer);

XDocument xdServer = XDocument.Load("server.xml");

var varServers = from Server in xdServer.Descendants("server")
select new
{ ServerID = Server.Element("id").Value,
ServerName = Server.Element("name").Value
};


foreach (var varServer in varServers)
{
dtrServer = dtServer.NewRow();
dtrServer["id"] = varServer.ServerID;
dtrServer["name"] = varServer.ServerName;
dtServer.Rows.Add(dtrServer);

};


cmbServer.DataSource = dtServer;
cmbServer.DisplayMember = "name";
cmbServer.ValueMember = "id";
this.cmbServer.SelectedValueChanged += new
System.EventHandler(this.cmbServer_SelectedValueChanged);


}

private void cmbServer_SelectedValueChanged(object sender, EventArgs
e)
{
if (cmbServer.SelectedIndex != -1)
{
btnMerge.Enabled = false;
btnSystemDNSEintragen.Enabled = false;
label1.Text = cmbServer.SelectedValue.ToString()
}
}

Danke.
 

Lesen sie die antworten

#1 Marcel Roma
30/11/2009 - 18:16 | Warnen spam
Kleiner Tip: Verwende doch ComboBox.SelectionChangeCommitted.

Ähnliche fragen