Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何访问一个表单';谁是别人的财产?_C#_Winforms - Fatal编程技术网

C# 如何访问一个表单';谁是别人的财产?

C# 如何访问一个表单';谁是别人的财产?,c#,winforms,C#,Winforms,我有两个WinForms,在Form1中,我声明: public int NumberOfContacts { get; set; } 打开Form2时,我需要从Form2访问该属性使用以下代码: Form2 f2 = new Form2(); f2.Show(this); 在您的表格2中: var value = ((Form1)Owner).NumberOfContacts; 如果您已经从form1创建了form2的实例,则可以如下设置: Form2 form2 = new Form

我有两个WinForms,在Form1中,我声明:

public int NumberOfContacts { get; set; }

打开
Form2
时,我需要从Form2访问该属性使用以下代码:

Form2 f2  = new Form2();
f2.Show(this);
在您的
表格2中:

var value = ((Form1)Owner).NumberOfContacts;

如果您已经从form1创建了form2的实例,则可以如下设置:

Form2 form2 = new Form2();
form2.NumberfOfContacts = this.NumberOfContacts;
form2.Show();
Form2 form2 = new Form2(this.NumberOfContacts);
form2.Show();
您还可以将form1.NumberOfContacts的值传递给form2的构造函数,如下所示:

Form2 form2 = new Form2();
form2.NumberfOfContacts = this.NumberOfContacts;
form2.Show();
Form2 form2 = new Form2(this.NumberOfContacts);
form2.Show();
表格2类别:

public int NumberOfContacts { get; set; }

public Form2(int numberOfContacts)
{
    NumberOfContacts = numberOfContacts;
}

这是一个关于从其他表单加入表单成员的常见问题,我假设您希望从Form1的当前活动实例访问NumberOfContacts,在这种情况下,您只需简单地,就像您在

表格1

 public partial class Form1 : Form
    {
        public int NumberOfContacts { get; set; }
        public Form1()
        {
            InitializeComponent();
        }
    }
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;
        }
    }
表格2中:

 public partial class Form1 : Form
    {
        public int NumberOfContacts { get; set; }
        public Form1()
        {
            InitializeComponent();
        }
    }
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;
        }
    }

这应该可以使用。

如果要访问和更改其他表单属性,可以使用以下方法:

private void button1_Click(object sender, EventArgs e)
{
    frm_main frmmain = new frm_main();
    frmmain.Visible = true;
    frmmain.Enabled = true;
}

在这种情况下,form1需要引用form2,反之亦然。如果一方创造了另一方,那么自然要做的事情就是给创造的价值一个引用给父方,它可以从中读取必要的价值。你可以在问题中添加更多的细节;值实时更改时是否需要通知第二个表单?如果是这样,您可以使用事件。如果只需要提取值,@JaredPar建议的方法就行了。