[英]Can't call a method from another window in 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
如果你可以显示完整的代码,它会刺激我们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.