我有3个表格。 Form2,forbutton2和ProfileView

时间:2016-09-04 07:55:27

标签: c#

我在Form2内的面板上显示了forbutton2,我想在我的forbutton2上放一个按钮,它将在面板上显示ProfileView也在表单2中。

column=1

这是来自forbutton2表单的按钮上的代码。

这些是我使用的代码中提示的错误:

  

错误1:非静态字段,方法或属性需要对象引用' private void button1_Click(object sender, EventArgs e) { ProfileView myForm = new ProfileView(); myForm.TopLevel = false; myForm.AutoScroll = true; Form2.panel4.Controls.Add(myForm); myForm.Show(); } '
  错误2:' Form2.panel4'由于其保护级别而无法访问

1 个答案:

答案 0 :(得分:1)

  1. Form2是类名(可能声明为public partial Form2 : Form),您尝试访问其字段panel4

  2. 第二个错误说

      由于其保护级别,

    panel4无法访问。

  3. 这意味着Form2panel4,但它没有public访问修饰符。

    如果button1_Click()方法位于Form2内(我相信它),请使用this.panel4.Controls.Add(myForm);。这将消除这两个错误。

    否则你应该引用Form1里面有panel4的内容(根据评论):

    private void button1_Click(object sender, EventArgs e)
    {
      ProfileView myForm = new ProfileView();
      myForm.TopLevel = false;
      myForm.AutoScroll = true;
      var form1 = Application.OpenForms.OfType<Form1>().Where(x => x.Name == "Name of Form1").FirstOrDefault();
      form1?.panel4.Controls.Add(myForm);
      myForm.Show();
    }