Ok, povedzme, že mám dve okná. V prvej mám metódu
public void Test()
{
Label.Content += " works";
}
A v druhej nazývam túto metódu:
MainWindow mw = new MainWindow();
mw.Test();
Ale nič sa nestane. Čo robím zle? Vďaka.
odpovede:
10 pre odpoveď č. 1Majiteľa môžete priradiť k oknu, ktoré bolo vytvorené vo vašom hlavnom okne.
window.Owner = this; //This is added to the code that use to create your Window
Potom by ste mali mať prístup k niečomu takému.
((MainWindow)this.Owner).Test();
MainWindow
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;
}
}
Druhé okno
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
((MainWindow)this.Owner).Test();
}
}
0 pre odpoveď č. 2
Prečo sa to pokúšate.
public string Test()
{
return "works";
}
MainWindow mw = new MainWindow();
// Your second form label.
lblsecondwindow.Text = mw.Test();
0 pre odpoveď č. 3
Vytváraš iný objekt MainWindow
ako je uvedené nižšie:
MainWindow mw = new MainWindow();
namiesto vytvárania nových MainWindow
objekt použiť existujúcu (za predpokladu, že ste už vytvorili MainWindow
objekt pred).
Skúste to:
oldmaindwindow.Test();//here oldmainwindow is an old object of MainWindow
ak môžete zobraziť úplný kód, ktorý nás vykuruje.