我有一个带有一些DataSource的ComboBox。有些名称不在列表中,当我通过显示另一个表单添加它们时,我没有在我的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";
}
答案 0 :(得分: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
表中。
答案 1 :(得分:0)
要使用Grant的答案,在更改为showdialog之后,您还需要检查ob的DialogResult属性,而不是当前表单的DialogResult。
if(ob.DialogResult == ...)