如何从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。

如何从window2调用window1中的函数

您正在创建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 可以"工作",但是它很笨拙,并且没有真正利用可用的工具。