2014-07-11 86 views
0

我有一個數據源的組合框。有些名字不在列表中,當我通過顯示另一個表單來添加它們時,我沒有在我的ComboBox中獲取這些項目。如何在數據庫更新時刷新組合框的數據源?

我想在「客戶端添加」表單關閉時顯示這些項目。

我使用這個代碼:

AddClient ob = new AddClient(); 

ob.Show(); 

if (DialogResult == DialogResult.OK) 
{ 
    List<AddBatteryType> btry = db.AddBatteryTypes.ToList(); 
    comboBoxBatteryType.DataSource = btry; 
    comboBoxBatteryType.DisplayMember = "Type"; 
    comboBoxBatteryType.ValueMember = "Id"; 
} 
+1

數據庫中的實際數據如何更新?目前還不清楚你在哪裏得到這個'DialogResult',或者以什麼順序發生這些事情。 – David

回答

1

你不會等待其他形式的關閉,所以if語句顯示AddClient形式後立即進行評估。 DialogResult的值爲None,因此if塊內的代碼不會執行。

更改此:

ob.Show();  // execution continues as soon as the second form is shown 

要這樣:

ob.ShowDialog(); // execution stops here until the second form is closed 

話雖這麼說,在if塊中的代碼不引用你顯示在所有的形態,所以有沒有按似乎不是顯示它的目的......除非該表單中的代碼將值保存到數據庫中的AddBatteryType表中。

0

爲了配合格蘭特的回答,改變後的ShowDialog,你還需要檢查,而不是目前的形式您所在的DialogResult的OB的DialogResult屬性。

如果(ob.DialogResult = = ...)

相關問題