【问题标题】:Duplicating Child Window problem复制子窗口问题
【发布时间】:2011-01-18 08:48:12
【问题描述】:

在我的应用程序中,我有一个提交按钮:

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,没问题...

【问题讨论】:

    标签: c# silverlight-4.0 childwindow


    【解决方案1】:

    我在其他中使用相同的 ChildWindow 地方,我没有问题...

    你的意思是:当你在不同的地方使用childwindows时你没有这个问题? 如果是这样,我只能假设在单击“确定”时,您不仅单击顶部窗口,而且还单击底部窗口。

    您可以添加一个从第一个子窗口中删除 Submit_button_Click 事件的行为。

    但是为什么要在子窗口中显示消息呢?你可以使用MessageBox.Show("Some string")

    【讨论】:

    • 但是为什么要在子窗口中显示消息呢?因为有人想要这个:P
    • 注意!如果您仍然遇到此问题,请告诉我们,以便我们进一步尝试帮助
    【解决方案2】:

    似乎Submit_button_Click 方法被多次附加到点击事件(每次点击)。

    通过将breakpoint 放入其中并查看它是否被多次点击来确保不是这种情况。

    【讨论】:

      【解决方案3】:
          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
                  { }
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2013-04-09
        • 2023-04-08
        • 1970-01-01
        • 1970-01-01
        • 2011-04-13
        • 2013-09-30
        • 2023-03-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多