2010-05-24 141 views
0

如何讓Xwinnerform保持最佳狀態保持主窗體不被點擊,我嘗試了ShowDialog,但無法使其工作。顯示對話框問題

static public bool CheckWinner(Button[] myControls) 
      { 
       //bolean statement to check for the winner 
       bool gameOver = false; 
       for (int i = 0; i < 8; i++) 
       { 
        int a = Winners[i, 0]; 
        int b = Winners[i, 1]; 
        int c = Winners[i, 2]; 

        Button b1 = myControls[a], b2 = myControls[b], b3 = myControls[c]; 
        if (b1.Text == "" || b2.Text == "" || b3.Text == "") 
         continue; 
        if (b1.Text == b2.Text && b2.Text == b3.Text) 
        { 
         xWinnerForm xWinnerForm = new xWinnerForm(); 
         xWinnerForm.ShowDialog(b1.Text + " is the Winner"); 

        } 



       } 


         return gameOver; 
      } 
     enter code here 
+1

「......不能讓它開始工作」的說法太含糊。什麼不行? – Thomas 2010-05-24 16:50:55

+0

你能解釋一下「不能工作嗎?」 ShowDialog是適當的方法。 – 2010-05-24 16:51:40

+0

它說'名稱'的最佳重載方法匹配有一些無效參數 – 2010-05-24 16:53:17

回答

1

接受字符串的ShowDialog沒有超載。正如在另一個問題中向您建議的那樣,請勿使用Show(或ShowDialog)方法來填充標籤的值。您可以在表單上創建一個屬性來獲取並設置標籤的文本,或者創建一個設置它的函數,然後致電ShowDialog(this)

0

我的猜測是,你需要父窗體作爲參數傳遞給ShowDialog

xWinnerForm.ShowDialog(mainForm); 

既然你傳遞一個string,我猜你在xWinnerForm超載ShowDialog。添加一個也接受IWin32Window參數的超載,並將其傳遞給基類方法。或者更好的是,不要重載ShowDialog,而是將窗口文本傳遞給xWinnerForm()構造函數。

+0

我是新來的這可以給我一個更清晰的例子,如果它沒有多大的麻煩 – 2010-05-24 16:55:12

1

聽起來像是你需要一個MessageBox

MessageBox.Show(b1.Text + " is the Winner"); 
+0

我有一個在那裏,但該項目需要一個從被稱爲通過一個類 – 2010-05-24 16:58:34