Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.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#Windows窗体-在没有窗体加载事件的情况下从另一个窗体接收值_C#_.net_Winforms - Fatal编程技术网

C#Windows窗体-在没有窗体加载事件的情况下从另一个窗体接收值

C#Windows窗体-在没有窗体加载事件的情况下从另一个窗体接收值,c#,.net,winforms,C#,.net,Winforms,我有一个Winform(C#),如何在没有form load事件的情况下从另一个窗体接收值。是否有可能传递该值? 我有一张病人登记表。我有一个搜索按钮链接来获取患者ID。搜索按钮有一个单独的表单。它打开了,我从搜索表单中选择ID。如何在没有表单加载事件的情况下将所选id值发送到患者输入表单。表单可以在不显示的情况下实例化。加载事件为。所以,如果您有函数/getter/public变量,您可以从另一个表单访问它们,前提是您不向患者输入表单添加公共属性 public string ID { get;

我有一个Winform(C#),如何在没有form load事件的情况下从另一个窗体接收值。是否有可能传递该值?
我有一张病人登记表。我有一个搜索按钮链接来获取患者ID。搜索按钮有一个单独的表单。它打开了,我从搜索表单中选择ID。如何在没有表单加载事件的情况下将所选id值发送到患者输入表单。

表单可以在不显示的情况下实例化。加载事件为。所以,如果您有函数/getter/public变量,您可以从另一个表单访问它们,前提是您不向患者输入表单添加公共属性

public string ID { get; set; }
在第一个窗体的按钮单击事件中,设置此属性的值,然后打开窗体。然后,您可以直接在患者输入表单中访问ID

private void button1_Click(object sender, EventArgs e)
{
    PatientEntryForm entryForm = new PatientEntryForm();
    entryForm.ID = "selected ID";
    entryForm.ShowDialog();
}

有两种方法可以做到这一点

(一)

在调用方表单中保留对其他表单的引用,如:

private void button1_Click(object sender, EventArgs e)
{ var f = new Form2();
  f.id = "value you want";
  f.Show();

}
(二) 在构造器中创建表单过程时,请创建对当前表单的引用

private void button1_Click(object sender, EventArgs e)
    { var f = new Form2(this);
            f.Show();

    }
现在您可以在“子窗体”中访问“pather”窗体

3) 调用show()方法时

现在,当前表单是Form2实例的所有者。 您可以在Form2调用中访问

var owner = this.Owner as Form1;

}

是否可以在不调用Show的情况下创建表单,这样就可以在代码中使用它的公共方法和属性,而无需调用form load
var owner = this.Owner as Form1;