包含用户控件而不隐藏的表单

时间:2012-04-09 03:24:42

标签: c#-4.0 user-controls

我正面临一些形式隐藏问题。

实际上我有一个带有用户控件的表单。用户控件有提交按钮,当我点击它时,我希望用户控件以及包含它的表单都消失了。 我可以使用this.hide(),但它只隐藏用户控件而不是表单。

我创建了一个

         form1 f1 = new form1();
         f1.hide();

甚至尝试过

       f1.close(), 

但没有任何效果。 请帮忙

编辑: 这是实际的代码:

  Input inp = new Input();
            inp.Show();

它是调用输入表单的地方。在加载事件中,我调用usinput用户控件。

                USinput usinp = new USinput();

然后在用户控件的提交按钮中,使用以下代码:

         Input inpt = new Input();
            inpt.Hide();
            this.Hide();
            Companies co = new Companies();
            co.Show();

它显示新表单,用户控件已消失,但输入表单仍然存在。

1 个答案:

答案 0 :(得分:0)

  • 您是否尝试过该代码?
  • 您是否确定您的控件未被调用f1并且没有名称冲突?
  • 您的控件类名称是form1吗?

这绝对是一个问题。

编辑: 你的问题出在第一行。

输入inpt = new Input();         inpt.Hide();         this.Hide();         公司合作新公司();         co.Show();

在UserControl中,您可以创建一个新表单。所以你有2个表格!第二个是永远不可见的。您必须向UserControl发送对表单的引用。这样,您总是使用相同的表单。

以下是如何从表单创建UserControl:

USinput usinp = new USinput(this); //Will send a reference of the form to the control

您的控件的构造函数将如下所示:

private Form parentForm;
public USinput(Input parentForm)
{
    this.parentForm = parentForm;
}

您的提交按钮代码将包含以下内容:

parentForm.hide();
相关问题