【问题标题】:Set control visible from other form设置从其他窗体可见的控件
【发布时间】:2013-07-07 12:05:49
【问题描述】:

我将按钮可见属性设置为 Form2 的 false。当我单击来自Form1 的按钮(也打开Form2 的按钮)时,我将如何使按钮(Form2)可见。

我试过这个:

private void button1_Click(object sender, EventArgs e)
{
    Form2 f2 = new Form2();
    f2.Show();
    f2.button1.Visible = true;
    f2.button1.Location = new Point(200, 200);
}

【问题讨论】:

  • 你有什么问题?
  • 你已经在按钮中设置了可见的false,那么你怎么能点击那个按钮呢?
  • Form2 中的按钮可见 false 而不是 Form1 中的按钮

标签: c# winforms controls


【解决方案1】:

在Form2中创建一个方法

public void setButton1Visible(boolean flag){
      this.button1.Visible = flag;
}

您不能直接从 Form1 访问该按钮。 (其实可以,但不是正确的解决方法。

private void button1_Click(object sender, EventArgs e)
    {
        Form2 f2 = new Form2();
        f2.Show();
        f2.setButton1Visible(true);
    }

【讨论】:

【解决方案2】:

我认为 button1 被声明为私有。如果您将 button1 声明为公开,您的代码将起作用。

public System.Windows.Forms.Button button1;

【讨论】:

    【解决方案3】:

    假设您的控件在表单 1 中。从控件属性窗口中设置相应的控件“modifiers = public”

    表格 1

        private void ShowForm2_Click(object sender, EventArgs e)
        {
            Form2 NewForm = new Form2();
            NewForm.Owner = this;
            NewForm.Show();
        }
    

    在表格 2 中

        private void ChangeProperty_Click(object sender, EventArgs e)
        {
           (this.Owner as Form1).MyButton.Visible = false;
        }
    
        //while doing this Control In Form1 will be hidden :)
    

    【讨论】:

      猜你喜欢
      • 2016-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多