所以我有 2 个表单,需要将属性从一个表单传递到另一个表单。
在表格 1 上我有一个方法
private void rb_CheckedChanged(object sender, EventArgs e)
{
var frm2= new Form2();
WorkComplete += frmSetNewTime.btnOk_Click;
frmSetNewTime.Show();
}
private void WorkComplete(object sender, EventArgs e)
{
// Property = Property from form 2
}
在 Form2 上我有一个叫做 btnOK_Click 的方法
public void btnOk_Click(object sender, EventArgs e)
{
Property = 5
}
我的目标是将属性从 form2 传回 form 1。
我无法订阅 WorkComplete 因为它是一个方法组是我得到的错误。有谁知道执行此操作的正确方法或正确语法吗?
最佳答案
1) 使用 2 个表单创建一个新项目。
2) 在 Form2 上,创建一个按钮。
3) 在按钮的属性中,将 Modifiers 更改为 Internal。 通常,这是 Private,这意味着只有 Form2 可以访问 button1 及其属性。将其更改为 Internal 允许程序集中的任何类访问 button1。如果您要将其更改为Public,您还可以允许您在项目中引用的库也可以访问 button1。
4) 在 Form1 的类中添加以下代码:
Form2 frm;
private void Form1_Load(object sender, EventArgs e)
{
// Create and show the form.
frm = new Form2()
frm.Show();
// Assign the event handler for the button to a handler within this class.
frm.button1.Click += this.Form2_button1_Click;
}
// This is the event handler that will run when you click the button on Form2.
private void Form2_button1_Click(object sender, EventArgs e)
{
MessageBox.Show("You clicked the button on Form 2!");
var frmProperty = frm.Property;
}
关于c# - 订阅另一种形式的按钮点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23572130/