PDA

View Full Version : update کردن اطلاعات داخل combobox در یک timer



elina
پنج شنبه 25 مهر 1392, 10:31 صبح
سلام دوستان
من توی برنامه ام یه تایمر دارم که توی اون هر بار یک دیتا تیبل رو بر اساس اطلاعات جدید پایگاه داده ام پر میکنم .
حالا میخوام اطلاعات این دیتا دیتبل هر بار دیتا سورس یک کنترل combobox ام بشه .
این کار رو به کمک invoke کردن و delegate انجام دادم . ولی وقتی رو combobox ام یک مقدار رو انتخاب میکنم به من مقدار خالی رو بر میگردونه .
این کد های من هستش ، لطفا اگه کسی اطلاعاتی داره راهنمایی کنه :

public delegate void OnDefineCmb(ComboBox cmb);
private void DefineCmb(ComboBox cmb)
{
if (this.InvokeRequired)
{
this.BeginInvoke(new OnDefineCmb(DefineCmb), new object[] { cmb });
return;
}
cmb.DataSource = DCcmbTable;
cmb.DisplayMember = "DoorID";
cmb.ValueMember = "DeviceId";

}
public delegate void OnAddTable(DataRow Row);
private void AddTable(DataRow Row )
{
if(this.InvokeRequired)
{
this.BeginInvoke(new OnAddTable(AddTable), new object[] { Row});
return;
}

string s=Row["DoorID"].ToString();
int i= Convert.ToInt32(Row["DeviceID"].ToString());
DCcmbTable.Rows.Add(new Item(s, i));

}
///////// و در تایمر
private void OnTimedEvent(object source, ElapsedEventArgs e)
{
foreach (DataRow row in DCtable.Rows)
{
AddTable(row);
DefineCmb(cmbdoortestconnection);
}
}