我有一个类似这样的program.cs:
namespace SumSwamp
{
static class Program
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
但是当我运行程序时它执行没有任何错误但是form1没有显示。如果我做错了请告诉我
Here是我的表单类。
答案 0 :(得分:2)
根据您发布的代码,您的错误就在于此部分;
public static Boolean WaitForRoll = true;
public static int Turn = 0;
public Form1()
{
InitializeComponent();
this.Load += new EventHandler(this.Form1_Load);
while(Turn == 0) //always true
{
if (WaitForRoll==false) //always false
{
//never reached code
DieTotal=DieLargeNum;
Random rnd1 = new Random();
DieLargeNum = rnd1.Next(1, 7);
if (DieTotal>DieLargeNum)
{
Turn = 1;
labelStatus.Text = "Player 1's Turn";
WaitForRoll=true;
}
else
{
Turn = 2;
labelStatus.Text = "Player 2's Turn";
WaitForRoll = false;
}
}
}
//...
}
仔细观察它会发现你的代码永远不会离开第一个while
循环,因此构造函数永远不会结束,导致永远不会创建Form1
对象。
一些提示;
while
循环。如果使用不当,它们会很痛苦,你这样做了。答案 1 :(得分:1)
您的Form1不可见,因为您的代码中存在无限循环。请检查以下代码是否无限。
while ((CompSum < TotalSpaces) & (PlayerSum < TotalSpaces))
{
...
}