2016-04-27 163 views
0

我有一个主窗口,里面有一个按钮,在点击一下 - 打开一个对话窗口来写一个名字在一个文本框中保存一个名字并且需要打开另一个窗口。如何从一个窗口打开一个窗口

我希望它会在主窗口 - 打开新窗口,但窗口打开对话窗口中,allthoght我设置的所有者是主窗口..

我该怎么办?

这是在对话窗口的按钮的代码:

Screen myScreen = new Screen (name, ViewModel, mainWindow); 
myScreen.Owner = mainWindow; 
myScreen.Show(); 
this.Close(); 
+0

所以,你想从一个对话框打开一个对话框? – Pikoh

+0

尝试删除myScreen.Owner = mainWindow; ....我不认为任何问题与代码 – NishantMittal

+0

我想要打开屏幕窗口 - 是mainMenu的窗口中,并从我打开的对话框mainMenu @Pikoh – ABC

回答

0

这是你应该怎么做:

在你的第一个对话框,你必须有一个公共的变量,是这样的:

public string TextBoxContent; 

而且在确定按钮时,你会做这样的事情:

this.TextBoxContent = TextBox.Text; 
this.DialogResult = true; 
this.Close(); 

在主窗口中,你必须这样做:

string returnedString; 
DialogWindow w = new DialogWindow(); 
w.ShowDialog(); 
if (w.DialogResult.HasValue && w.DialogResult.Value) 
    returnedString=w.TextBoxContent; 

在这之后,你会在返回的字符串显示你的第二个对话框。希望你看到逻辑。

0

好吧,你有三个窗口,一个是MainWindow其中有一个按钮,打开另一个窗口名称Dialog具有输入名称的textBox和一个按钮,通过该textBox输入到另一个窗口名称Screen。所以我必须采取一个名为textBoxName一个textBoxScreen窗口,它会显示通过文字,这里是我的解决方案

主窗口按钮显示对话框这种方式

private void buttonMainShowDialog_Click(object sender, RoutedEventArgs e) 
     { 
      Dialog dl = new Dialog(); 
      dl.ShowDialog(); 
     } 

构造Screen窗口,如下内搭文本作为一个参数,使我们通过Dialog窗口textBox文本

public Screen(string text) 
     { 

      InitializeComponent(); 
      this.textBoxName.Text = text; 
     } 

,你需要调用从对话无线这个纱窗ndow如下

private void buttonDialogShowScreen_Click(object sender, RoutedEventArgs e) 
     { 
      Screen myScreen = new Screen(this.textBox.Text); 
      myScreen.Show(); 
      this.Close(); 
     } 

其工作正常,希望这可以帮助您

+0

您正在将窗体显示为非模态。 OP希望窗口显示为对话框。 – Pikoh

+0

如果我显示为对话框,那么它也可以工作 – Mostafiz

+0

不,它不会工作。 “屏幕”应显示为对话框。一旦你调用'myScreen,ShowDialog()',你将无法关闭第一个对话框 – Pikoh