如何刷新下拉按钮,单击另一个表单
本文关键字:按钮 单击 另一个 表单 何刷新 刷新 | 更新日期: 2023-09-27 18:12:53
我有一个winForm1,它有一个组合框。我将这个组合框绑定到Form_Load事件上,像这样
SqlCommand cmd = new SqlCommand("SELECT DISTINCT(TXT_TARGET_NUMBER) FROM TBL_CDR_ANALYZER", sqlCon);
cboTargetNo.Properties.Items.Clear();
cboTargetNo.Properties.Items.Add("Choose Target Number");
sqlCon.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
cboTargetNo.Properties.Items.Add(dr["TXT_TARGET_NUMBER"]);
}
sqlCon.Close();
cboTargetNo.SelectedIndex = 0;
现在这个表单还包含一个按钮,比如btn1。在点击此按钮事件时,我正在使用ShowDialog()函数打开一个新的winform,例如winForm2。
在WinForm2我有一个按钮btn2插入一些值在sql。我想在sql中插入值后,winForm1上的组合框应该刷新。我怎么能这么做呢?我不知道从哪里开始。
如果您想从form2
更新每个form1
,更好的选择是拥有事件处理程序。
Form2代码/strong>
public event EventHandler myEvent;
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// update data here
// inform form 2 about data added
if (myEvent != null)
{
myEvent(this,e);
}
}
Form1代码
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.myEvent += new EventHandler(f2_myEvent);
f2.ShowDialog();
}
void f2_myEvent(object sender, EventArgs e)
{
//Refresh your ddl
}
简单的方法是提取ComboBox更新到方法的代码,从Form_Load event
调用它,后来由于您使用Form.ShowDialog
,您可以再次调用该方法从数据库获取最新记录并再次绑定ComboBox。比如:
WinForm2 frm2 = new WinForm2();
frm2.ShowDialog();
RefreshCombo();
其中RefreshCombo
为方法:
private void RefreshCombo()
{
SqlCommand cmd = new SqlCommand("SELECT DISTINCT(TXT_TARGET_NUMBER) FROM TBL_CDR_ANALYZER", sqlCon);
cboTargetNo.Properties.Items.Clear();
cboTargetNo.Properties.Items.Add("Choose Target Number");
sqlCon.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
cboTargetNo.Properties.Items.Add(dr["TXT_TARGET_NUMBER"]);
}
sqlCon.Close();
cboTargetNo.SelectedIndex = 0;
}
如果你想要立即更新,你可以创建一个委托,在点击按钮后从对话框中刷新组合。
在主表单中创建一个委托:
public delegate void ComboDelegate();//namespace level
public void RefreshCombo(string itemToAdd){
//do your add item here
}
then在你的Dialog Form类中:
public ComboDelegate cd;
创建对话框,cd设置为RefreshCombo:
winForm2 = new Winform(){ cd = RefreshCombo );
然后在你的按钮点击简单呼叫:
cd(itemToUpdate);