在我的应用程序中,我有一个提交按钮,可以执行此操作:
private void Submit_button_Click(object sender, RoutedEventArgs e)
{
string variable = variable_textBox.Text;
if (variable.Length >= 1 && variable.Length <= 6)
{
//get some data from db
}
else
{
ChildWindow msg = new Msg("Some string");
msg.Show();
}
}
这是我的问题:
当我编写一个字符串以便程序进入else子句时,会出现一个childWindow(这是正常的);但如果我再次这样做,将出现2个childWindows。每次单击“提交”按钮,我都会获得点击次数childWindows。
有人可以告诉我为什么吗?我在其他地方使用相同的ChildWindow,我没有问题...
答案 0 :(得分:1)
我在其他地方使用相同的ChildWindow 地方,我没有问题...
你的意思是:当你在不同的地方使用儿童窗口时,你没有这个问题吗? 如果是这样,我只能在单击“确定”时假设您不要单击顶部窗口,而是单击底部窗口。
您可以添加从第一个子窗口中删除Submit_button_Click事件的行为。
但为什么要在儿童窗口中显示消息?您可以使用MessageBox.Show("Some string")
。
答案 1 :(得分:0)
似乎Submit_button_Click
方法多次附加到点击事件(每次点击)。
确保不是这种情况,只需在其中加breakpoint
并查看是否多次点击。
答案 2 :(得分:0)
public static Form IsFormAlreadyOpen(Type FormType)
{
foreach (Form OpenForm in Application.OpenForms)
{
if (OpenForm.GetType() == FormType)
return OpenForm;
}
return null;
}
private void Submit_button_Click(object sender, RoutedEventArgs e)
{
string variable = variable_textBox.Text;
if (variable.Length >= 1 && variable.Length <= 6)
{
//get some data from db
}
else
{
ChildWindow frm = null;
if ((frm = (ChildWindow)IsFormAlreadyOpen(typeof(ChildWindow))) == null)
{
frm = new ChildWindow();
frm.Show();
}
else
{ }
}
}