我有三个的WinForms .. Form1的窗体2和Form3调用2种2种不同形式的
// Form1的按钮
private void btF1_Click(object sender, EventArgs e)
{
new Form3(this).ShowDialog();
}
//窗体2按钮
private void btF21_Click(object sender, EventArgs e)
{
new Form3(this).ShowDialog();
}
// Form3
方法 public partial class AjoutDemandeur : Form
{
Form1 _owner;
Form2 _owner2;
public Form3(Form1 owner, Form2 owner2)
{
InitializeComponent();
_owner = owner;
_owner2 = owner2;
}
private void button1_Click(object sender, EventArgs e)
{
_owner.methodForm1(); //call a method from Form1
}
private void button2_Click(object sender, EventArgs e)
{
_owner2.methodForm2(); // call a method from Form2
}
我想调用一种方法od从Form1和Form2到Form3 但问题出在两个按钮btF1和btF2 =>没有给出的参数对应于Form3.Form3(Form1,Form2)' '所需的形式参数'owner2'所以解决方案!
为什么不能让他们在Form3能特性从Form1和Form2设置? – Kidiskidvogingogin
Form3需要两个参数Form1所有者,Form2所有者2,并且您只发送一个参数。改变form3只需要一个参数,或改变你的调用方法发送两个参数 - 或使用THIS关键字(谷歌c-sharp可选参数)使form3的构造函数的第二个参数可选 –
我还会问这个问题:“这是一个函数需要立即运行,或者可以在窗体关闭时运行“。如果是后者,你可以使用FormClosing事件处理程序 – Takarii