【问题标题】:How to show/hide UserControl in a form when a button is clicked?单击按钮时如何在表单中显示/隐藏 UserControl?
【发布时间】:2016-02-10 12:56:16
【问题描述】:

我只想在单击按钮时以 Windows 窗体打开一个用户控件(包含按钮和文本框)。

我用 button1 和 botton2 创建了 form1 ,还创建了 Usercontrol1 和 Usercontrol2 。现在在form1中,我想在按下button1时调用Usercontrol1(在form1中打开它),然后按下button2来显示Usercontrol2并隐藏Usercontrol1,但我不知道该怎么做。我在 form1 (Usercontrol1.visible = true/False) 中为 Usercontrol1 创建了一个对象,但它没有用。 请帮忙。 谢谢

代码如下:

公共部分类 Form1 : Form { 公共表格1() { 初始化组件(); }

    private void Form1_Load(object sender, EventArgs e)
    {

    }

    private void button1_Click(object sender, EventArgs e)
    {
        Usercontrol1 uc1 = new Usercontrol1 ();
        uc1.Visible = true;

    }

    private void button2_Click(object sender, EventArgs e)
    {
        Usercontrol1 uc1 = new Usercontrol1 ();
        uc1.Visible = false;

        Usercontrol2 uc2 = new Usercontrol2 ();
        uc2.Visible = true;
    }
}

【问题讨论】:

  • 你有这方面的代码吗?
  • 在 form1 中,您应该将其从控件中删除为:this.form1.Controls.Remove(userControl1);
  • 嗨,阿斯温·拉马克里希南。我没有代码。但只有这个: Usercontrol1 uc1 = new Usercontrol1(); uc1.Visible = true; // 此代码在按钮单击中,当我单击它时没有任何反应。你能帮忙吗?
  • @naouf 您需要显示您的实际代码.. 编辑您的原始问题并粘贴您那里的内容..
  • ParentForm 上进行谷歌搜索,这是一个property of UserControl`,然后你设置它的可见性,像((YourForms)(this.ParentForm)).ControlMainScreen.Visible = false; 这样的事情在互联网上有很多如何做到这一点的例子。跨度>

标签: c#


【解决方案1】:

应该是这样的

        private void button_Click(object sender, EventArgs e)
        {
           if(this.Controls.Contains(this.userControl1))
                 this.Controls.Remove(this.userControl1);
           if(!this.Controls.Contains(this.userControl2))
            this.Control.Add(this.userControl2);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if(!this.Controls.Contains(this.userControl1))
                 this.Control.Add(this.userControl1);
           if(this.Controls.Contains(this.userControl2))
                this.Controls.Remove(this.userControl2);
        }

【讨论】:

  • this 在这里是多余的
  • 你是对的,这只是老式风格,所以我把它留在那里!甚至 winforms 设计师也保留了它们!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-17
  • 1970-01-01
相关资源
最近更新 更多