2012-09-05 33 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

@彼得啊哈。我錯誤地觸碰了其中一個文件,但是我控制了它。 –