繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM