2013-03-22 43 views
-5

在Visual Studio中我可以建立我的Windows應用程序,拖放按鈕等添加自定義代碼到Windows應用程序的UI

和代碼自動生成,把我MainForm.Designer.cs文件。

在我的解決方案資源管理器中有一個圖標MainForm,它包含所有UI組件。

enter image description here

的問題是,如何創建自定義自己的代碼和訪問的按鈕和我與drag n drop創建的組件。我無法在MainForm圖標下創建自己的文件。

主要Program.cs中,在此規定:

MainForm form = new MainForm(); 
Application.Run(form); 

我可以訪問的形式,但我不能訪問任何組件。所以我不得不將所有組件都公開給公衆,這是正常的嗎? 無論我想訪問這些,我都必須通過我的form變量作爲參數。

有沒有一種很好的方式來創建自定義的東西,我是否正確地做事情,從Program.cs獲取表單變量,然後將其傳遞給其他類?仍然爲什麼自動生成的東西緊緊耦合在這個MainForm.cs圖標下,但我不能在那裏添加我的代碼。

+0

一個簡單的方法來生成代碼,如點擊按鈕是雙擊設計器中的按鈕(拖放),然後將您帶到生成的代碼。 – 2013-03-22 17:21:00

+0

@DROPtableusers我知道那裏的代碼是,但我不能在那裏添加我自己的類。 – Jaanus 2013-03-22 17:22:19

+2

這是一個超級基本的視覺工作室問題。我認爲你需要研究一些教程。 – JeremyK 2013-03-22 17:29:31

回答

2

您可以添加自己的代碼隱藏文件的代碼,但這些代碼通常是在窗體上的控件用戶界面事件處理程序。我認爲你所掛起的是MainForm是一個類,而不是一個項目。您將類添加到包含它的項目中,然後在表單類的事件處理程序中,您將創建要嘗試訪問的任何類的實例,並將相關值從表單傳遞到需要調用的方法。通過這種方式,您的屬性可以保持私有狀態,因爲表單以外的任何內容都不會嘗試訪問它們。雖然不是禁止的,但我不喜歡將參數的形式作爲參數傳遞。

+0

建議不要向生成的文件添加代碼,因爲如果重新生成文件,您將失去全部代碼。 – 2013-03-22 17:37:59

+0

同意。我的意思是代碼背後的代碼,而不是生成的文件。我會編輯澄清。 – 2013-03-22 17:41:06

+0

我還可以說,這種事情是'部分班'特別方便的地方。 :) – 2013-03-22 17:43:44

0

在Visual Studio Design視圖中,您應該有一個可用的Properties窗口。在那裏,每當您在Design視圖中選擇控件時,都會看到它更新。在Properties面板上有一個帶有閃電的圖標,懸停文字爲Events

如果您瀏覽顯示的項目,然後雙擊要編寫代碼的Event,您將被推入代碼視圖,並生成代碼以訪問Event

但是你不應該做的就是嘗試從Program.cs運行形式,該代碼的邏輯連接插件將在MainForms.cs,而不是Program.cs產生,並從那裏,你可以訪問的所有屬性private上下文。

enter image description here

相關問題