对不起,如果问题含糊不清,但我的表格不会运行。没有错误或任何它甚至不会加载。我的代码或计算机有问题吗?所有文件都位于here。我从来没有得到过这样的东西。就像我说的那样,我没有得到任何错误消息,它就不会运行。
string const& PrintData() const
{
cout << "const" << str;
return const_cast<p*>(this)->PrintData();
}
答案 0 :(得分:4)
用作OVERLAPPABLE
数组索引的pr1, pr2
和pr3
变量的值不能从1到3,而是从0到2,因为数组中只有三个字符串位置0,1和2
使用索引3会在Form_Load事件期间触发prises
异常,这是众所周知的情况,即以64位模式和调试模式编译的程序无法启动。
如果您尝试从Visual Studio外部的BIN \ DEBUG文件夹中执行该程序,您应该能够看到异常。
可以在此QA中找到非常详细的答案以及有关该问题的其他文档的链接
当然,我假设您在构建WinForm项目时没有更改Visual Studio的默认行为。该项目的模板在Program.cs文件中创建一个Program类,其中Main方法使用这样的行启动应用程序的第一种形式
Index Out Of Range
如果缺少此行,并且在项目属性中没有将Form1设置为启动表单,则不会调用和显示任何表单。
注意:查看您的代码似乎已复制/粘贴了 `Application.Run(new Form1());`
和Cur1, Cur2
上的支票。代码始终检查值Cur3
,我认为您忘记将其更改为==1
和==2
答案 1 :(得分:1)
您可以从中替换代码:
rnd.Next(1, 3);
到
rnd.Next(0, 2);
还需要将所有硬代码值从1-3更新为0-2 避免超出范围例外。
答案 2 :(得分:0)
就您提到的问题而言,您的代码没有任何问题。我建议您检查program.cs中是否存在Main
方法,并且应该调用Application.Run(new Form1)
。