2012-09-05 37 views
1

我想这个问题已被问及回答,但我找不到它。如何让VC#重建自动生成的.cs文件?

我想做一个简单的GUI来连接到Windows 7命令。我通常使用Wx,但是因为这只是一个窗口,所以我决定看看我是否可以使用Visual C#2010 Express来快速实现它,这在以前我从来没有用过。

事情从一开始就很棒。我创建了一个表单,在其上放置了几个按钮和文本框等,然后点击Debug。它就这样跑来跑去了。没有麻烦,没有大惊小怪。于是我按照我想要的方式设计了表单,将控件从“Button1”改名为有意义的名称。但现在它是一团糟。通过点击,我发现VC#自动生成了两个名为Form1.cs和Form1.Designer.cs的文件。后者包含函数和用户点击等产生的事件之间的绑定,前者包含这些函数的空操作代码,供我完成。

问题是,名称仍然是原来的“Button1”等等,而不是新的,我第一次运行后添加的新控件根本没有出现。

我希望它从完成的表单重新生成所有那些东西。如何?

+0

那是第一课,设计第一,程序稍后。在开始黑客入侵之前将源代码从源代码管理恢复到版本(可能是Lession#2)。右键单击一个名称,如Form1,Refactor + Rename。 –

+0

@Hans感谢您的教训。从1971年第一次编程工作以来,我一直热衷于学习,在这三十年里,我是一名专业程序员。当然,这个小项目并不受源代码控制。我已经退休了,而且这只是我想快速提出的一件事。有没有办法做我想要的?或者我必须重新开始还是手动编辑这两个文件? –

回答

0

可能没有一个实际的问题,除非Form1.Designer.cs编辑东西。假设你只保留了那个文件,事情应该是正常的。

每当你上的按钮双击,或者使用事件接口来创建事件处理程序,该处理程序以下列方式产生:

ObjectName_EventName() 

因此,举例来说:

Button1_Click() 

如果稍后更改Button1的名称,事件处理程序的名称也不会更改。但它仍然附加到适当的事件,再次 - 假设你没有编辑Form1.Designer.cs中的任何东西

如果你看(但不要触摸!)在Form1.Designer.cs中,你可能会发现类似的东西来:

MyNewButtonName.Click += Button1_Click; 

(我不记得编辑器使用接线的事件处理程序的确切语法;原理是,你应该看到您的新按钮名被连接到处理程序名称)

+0

我没有碰过自动生成的文件。我希望通过使用新的改进名称,让VC#从头开始。也许如果我导出表单(如何?)并使用表单开始一个新项目? –

+0

触摸生成的文件不应该对您有所帮助,它们是项目输出。这实际上会导致你的问题。对于任何生成的文件,构建机制都会查看源文件并将其与输出进行比较。如果输出结果较新(例如,您刚刚“触及”的输出),那么构建认为它不需要编译源代码。 –

+0

@彼得啊哈。我错误地触碰了其中一个文件,但是我控制了它。 –