我在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
'由于其保护级别而无法访问
答案 0 :(得分:1)
Form2
是类名(可能声明为public partial Form2 : Form
),您尝试访问其字段panel4
。
第二个错误说
由于其保护级别,panel4无法访问。
这意味着Form2
有panel4
,但它没有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();
}