无法从C#WPF中的另一个窗口调用方法

好吧,假设我有两个窗口。 在第一个我有一个方法

public void Test() { Label.Content += " works"; } 

在第二个我称之为这个方法:

 MainWindow mw = new MainWindow(); mw.Test(); 

但没有任何反应。 我究竟做错了什么? 谢谢。

您可以将所有者分配给在MainWindow中创建的窗口。

 window.Owner = this; //This is added to the code that use to create your Window 

然后你应该能够访问它这样的东西。

 ((MainWindow)this.Owner).Test(); 

主窗口

 public partial class MainWindow : Window { Window1 window = new Window1(); public MainWindow() { InitializeComponent(); window.Show(); } public void Test() { label1.Content += " works"; } private void Window_Loaded(object sender, RoutedEventArgs e) { window.Owner = this; } } 

第二个窗口

 public partial class Window1 : Window { public Window1() { InitializeComponent(); } private void Button_Click(object sender, RoutedEventArgs e) { ((MainWindow)this.Owner).Test(); } } 

你为什么这样试试。

 public string Test() { return "works"; } MainWindow mw = new MainWindow(); // Your second form label. lblsecondwindow.Text = mw.Test(); 

您正在创建MainWindow另一个对象,如下所示:

 MainWindow mw = new MainWindow(); 

而不是创建新的MainWindow对象使用现有的(我假设您之前已经创建了MainWindow对象)。

试试这个:

 oldmaindwindow.Test();//here oldmainwindow is an old object of MainWindow 

如果你可以显示完整的代码,它会刺激我们。