如何从window2调用window1中的函数
本文关键字:函数 window1 调用 window2 | 更新日期: 2023-09-27 18:03:09
我有一个Window1,它有一个发送
的函数 public void proba()
{
MessageBox.Show(this.comboBoxTipUnosa.Text);
}
在按钮上点击它有
Window2 win2= new Window2();
win2.textBoxOne.Text = selectedString;
win2.ShowDialog();
如果从Window2,在一个按钮上点击,我用代码
Window1 win1 = new Window1();
win1.proba();
我得到一个空白消息框。但是如果用MessageBox声明一个MessageBox。显示("文本");它的工作原理。
这只是我想通过的一个测试。我的最后一个想法是有一个方法在Window1,将有sql插入查询的代码,从Window1的文本框,我将需要该方法被调用后,一个按钮被点击在Window2。
您正在创建Window1
的新实例:
Window1 win1 = new Window1();
这意味着this.comboBoxTipUnosa.Text
在该实例中为空。
Window2
。首先,在Window2
中的构造函数上期望它:
private Window1 window1Instance;
public Window2(Window1 window1)
{
this.window1Instance = window1;
}
创建Window2
:
Window2 win2 = new Window2(this);
然后在Window2
中你可以引用现有的实例:
this.window1Instance.proba();
注意:这是一个非常"WinForms"做事的方式。虽然我不会声称自己是WPF/MVVM专家,但您绝对应该把一些重点放在学习WPF中使用的模式和实践上。把它当作WinForms 可以"工作",但是它很笨拙,并且没有真正利用可用的工具。