我有一个包含多个表单的项目。对项目数据集进行一些更改后,一个表单上的Load事件停止工作(尽管表单显示正确)。表单本身没有变化。作为一个快速的解决方法,我已经创建了Shown处理程序(通过VS IDE)并将我的代码放在那里,但它也没有触发(我已经创建了测试消息框以确保它不是调试器的问题)。
另一方面,许多事件都有效,例如我已经尝试过Activated但它有效,但它对我没用。
.Designer.cs中有适当的行:
this.Load += new System.EventHandler(this.FormZlecenie_Load);
我将与此表单连接的三个文件(.cs,.resx,.Designer.cs)与我在更改数据集之前所做的备份进行了比较,并且几乎没有差异(备份工作没有问题) 。
我不想恢复备份,因为我需要在数据集中进行这些更改,而且还有很多。
我还删除了所有二进制文件夹(bin,obj),但没有成功。
我在网上寻找类似的问题,但我找到的唯一解决方案是重新创建表单。这对我来说是最后的选择,因为它会非常耗时,我不想轻易放弃。
那我还应该看看哪儿?我没有想法。
答案 0 :(得分:1)
我会进入表单设计器并确保事件显示在属性窗口中。如果它存在,则删除它,构建项目,然后再次手动重新添加。
如果这不起作用,请进入表单的构造函数,并使用您在问题中提供的代码示例手动注册事件。调试以查看事件是否触发。
接下来,尝试使用不同的方法处理事件处理程序。只是使用“this.load + =”时自动生成的那个。
最后,在最糟糕的情况下,您可以重新创建表单并复制当前表单中的元素。有时设计师搞砸了表格,无法修复自己。
希望这有帮助!
答案 1 :(得分:1)
查看代码中的绑定。有时绑定错误时会忽略事件(即绑定到Thread.IsAlive - 我的情况)。
答案 2 :(得分:0)
检查表单类的构造函数中InitializeComponent();
的调用。
表格部分仍然无需通话即可运行。甚至可以调用某些特定形式的事件。但是不会创建表单上的控件,而this.Load
之类的事件将不再起作用。