2016-08-01 73 views
0

我一直在關注this教程來命名窗體頁面上的元素。從我收集的信息中,表單將自動生成基於設計器表單上元素名稱的方法。C#設計器表單不更新表單對象的方法?

但是,儘管大多數文本框,標籤在點擊它們並點擊ENTER時都會更新它們的方法名稱,但其中一些仍然引用默認名稱。

在附圖中名爲「Option」的標籤仍然是「label3_clicked」。

非常感謝。

Attached image of problem.

+1

如果你改變控制窗口的名稱不會影響任何控制的'事件'生成(註冊)VS在將來'取'該控件的名稱'+'_(下劃線)'+'事件名稱' '(rename)'已經生成事件 –

+0

一旦創建了事件處理程序(方法,而不是控件),它不會自動通過重命名控件來改變:'label3'和'label3_clicked'是完全獨立的符號,您可以輕鬆將相同的事件處理程序附加到多個控件。但是如果你手動重命名文件內部的事件處理程序('label3_clicked'),VS將提供搜索所有的出現並重命名它們。如果您想避免必須這樣做,只需確保在創建事件之前命名控件*。 – Lou

回答

0

您在Label被稱爲label3時創建了click事件處理程序方法。爲了解決這個問題,在你的代碼後面和F2中突出顯示方法名稱。這將使您能夠更改(重構)該方法的名稱,從而也會更改表單設計器。

將來只要命名你的對象,然後創建你的事件處理程序方法,所有應該是好的。

1

我從來沒有經歷該事件的名稱(可以是任何東西)將自動更新以匹配控件的名稱的行爲。

這是因爲事件的名稱可以是任何東西(label3.Clicked += Whatever_Click_Whatever甚至沒有點擊零件)。沒有編譯器可以檢查的命名規則。只有自動生成的默認值。

如果您在更改控件名稱時不想更改自定義名稱,該怎麼辦?所以這裏沒有自動行爲。

那麼,你所能做的就是去Form1.Designer.cs找到這樣的事件:

this.Load += new System.EventHandler(this.Form1_Load); 

然後Right click => RenameCtrl + R, Ctrl + R並更改名稱。這改變了它也是你表單的代碼。

相關問題