代码之家  ›  专栏  ›  技术社区  ›  John M

向自定义用户控件添加类似ShowDialog的内容?

  •  5
  • John M  · 技术社区  · 14 年前

    当用户选择按钮时,自定义用户控件将添加到表单中。此用户控件提供输入某些值的功能。

    在更改主窗体上的值之前,如何等待用户控件完成?

    我在想这样的事情:

    customControl ylc = new customControl();
    ylc.Location = new Point(11, 381);
    ylc.Parent = this;
    ylc.BringToFront();
    
    if(ylc.ShowDialog() == DialogResult.OK)
    {
       this.lblSomeText.Text = ylc.PublicPropertyValue
    }
    

    更新1

    无法将用户控件添加到其自己的窗体中。在某些窗体上它是“嵌入”的,在其他窗体上它是根据需要动态创建的。

    更新2

    这样 link 很有帮助。

    我的最终解决方案如下(我在“完成”时隐藏用户控件):

    customControl ylc = new customControl();
    ylc.Location = new Point(11, 381);
    ylc.Parent = this;
    ylc.BringToFront();
    ylc.VisibleChanged += new EventHandler(ylc_VisibleChanged);    
    ylc.Show();
    

    然后此代码进入“visibleChanged”事件:

    if(ylc.ShowDialog() == DialogResult.OK)
    {
       this.lblSomeText.Text = ylc.PublicPropertyValue
    }
    
    1 回复  |  直到 14 年前
        1
  •  6
  •   msergeant    14 年前

    用户控件实际上不是 完成 是吗?我认为,通过将用户控件放在自己的窗体上并调用ShowDialog,您所要做的可能会更好。