2010-05-24 142 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