我有2个WinForms,在 Form1 中我声明了这个:
public int NumberOfContacts { get; set; }
我需要从 Form2 访问该属性。
答案 0 :(得分:2)
打开Form2
时,请使用此代码:
Form2 f2 = new Form2();
f2.Show(this);
在Form2:
var value = ((Form1)Owner).NumberOfContacts;
答案 1 :(得分:2)
如果您已从form1创建了form2的实例,则可以将其设置为:
Form2 form2 = new Form2();
form2.NumberfOfContacts = this.NumberOfContacts;
form2.Show();
你也可以将form1.NumberOfContacts的值传递给form2的构造函数,如下所示:
Form2 form2 = new Form2(this.NumberOfContacts);
form2.Show();
Form2课程:
public int NumberOfContacts { get; set; }
public Form2(int numberOfContacts)
{
NumberOfContacts = numberOfContacts;
}
答案 2 :(得分:1)
如果要访问和更改其他表单属性,可以使用以下方式:
private void button1_Click(object sender, EventArgs e)
{
frm_main frmmain = new frm_main();
frmmain.Visible = true;
frmmain.Enabled = true;
}
答案 3 :(得分:0)
这是一个关于从其他表单加入表单成员的常见问题,我将假设您要从Form1的当前活动实例访问NumberOfContacts,在这种情况下,您可以简单地,就像您在:
Form1 :
public partial class Form1 : Form
{
public int NumberOfContacts { get; set; }
public Form1()
{
InitializeComponent();
}
}
并在 Form2 :
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
// ActiveForm will give you access to the current opened/activated Form1 instance
var numberOfContacts = ((Form1) Form1.ActiveForm).NumberOfContacts;
}
}
这应该有用。