gpt4 book ai didi

c# - 在关闭对话框窗体时刷新 winform ComboBox 数据源

转载 作者:太空宇宙 更新时间:2023-11-03 13:07:35 25 4
gpt4 key购买 nike

我有一个设置表单,上面有一个组合框,我用数据库中的分区进行填充。在这个组合框旁边有一个“新建”按钮,用户可以单击它来创建一个新部门。

单击“新建”按钮时,会弹出一个对话框供用户输入并保存新部门。我希望设置表单上的组合框在对话框表单关闭时刷新,但我似乎做不到。

我创建了一个函数来填充组合框:

        private void fillDivisionsCmboBox()
{
Divisions divs = new Divisions();
DataTable dt = new DataTable();

//FILL DIVISIONS DROP DOWN
dt = divs.GetActiveDivisions();

if (divs.Error != null)
{
MessageBox.Show("Error: " + divs.Error,
"Error",
MessageBoxButtons.OK,
MessageBoxIcon.Error,
MessageBoxDefaultButton.Button1);
}
else if (dt.Rows.Count <= 0)
{
MessageBox.Show("Error: No Divisions returned. Please create divisions with the \"New\" button.",
"Divisions: Empty Reuturn",
MessageBoxButtons.OK,
MessageBoxIcon.Exclamation,
MessageBoxDefaultButton.Button1);
}
else
{
this.cmbo_divisions.DataSource = dt;
this.cmbo_divisions.DisplayMember = "title";
this.cmbo_divisions.ValueMember = "ID";
this.cmbo_divisions.SelectedIndex = -1;
this.cmbo_divisions.Text = "Select a Division";

//HANDLE UI VISIBILITY
this.grp_divSettings.Visible = false;
}
}

我调用设置表单的 Activated 事件:

    private void frm_settings_Activated(object sender, EventArgs e)
{
fillDivisionsCmboBox();
}

在这里我从新按钮调用对话框表单:

        private void btn_new_division_Click(object sender, EventArgs e)
{
Form newdiv = new frm_new_division();
newdiv.ShowDialog();
}

我这样做是希望它能在对话框关闭时刷新组合框,但是当对话框关闭时不会触发激活的事件......我怎样才能实现组合框的刷新关闭对话框?

谢谢你的时间

最佳答案

当您将第二个窗体显示为模态对话框时,第一个窗体中代码的执行会暂停。

因此,只需在显示第二个表单后立即调用 fillDivisionsCmboBox(),而不是在 Form.Activated 事件中调用,它会在用户关闭表单时运行。

private void btn_new_division_Click(object sender, EventArgs e)
{
using (var newdiv = new frm_new_division())
newdiv.ShowDialog();

fillDivisionsCmboBox();
}

关于c# - 在关闭对话框窗体时刷新 winform ComboBox 数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30214371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com