2016-04-27 164 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