c 與 winform 介面開發

2021-08-28 10:07:45 字數 3398 閱讀 7787

c# 與 .net 開發,一堆又一堆的新名詞,頭暈目眩,比如 clr / apartments / sta / mta / com

吐槽無力,只乙個問題:微軟真的是軟體公司,而不是文學公司?

form1.cs 與 form1.designer.cs  是 2 個檔案,一起定義了乙個 form 的行為/樣式等。在 vs2010 中會摺疊在一起。

其中,designer 中定義樣式。事件監聽、事件處理都在 form.cs 中定義。

雙擊 form.cs 會開啟 ui 效果介面,可以直接拖拽完成介面布局。右鍵 view code 可以檢視 form1.cs 原始碼。

program.cs 內定義了 main 函式,是啟動檔案。

[stathread]/[mtathead] 指定單/多執行緒執行模式。

using system;

using system.collections.generic;

using system.linq;

using system.windows.forms;}}

form1.cs 與 designer.cs 2個檔案定義的是同乙個 namespace 下的 同乙個 class

每乙個檔案定義時,都使用了 partial class

介面布局的**,一般自動生成,在 designer 中。

手寫的**主要是事件處理,一般放在 form.cs 中

form.cs 的建構函式中,一般會先呼叫 designer.cs 中定義的 initializecomponent() 完成介面初始化。

在 initializecomponent 中會宣告每個控制項的索引   private system.windows.forms.button button1; 

在 form.cs 中可以直接用過變數名 button1 操作該控制項。

所以,form.cs 的建構函式中,一般先呼叫 initializecomponent。

designer.cs 中,initializecomponent 初始化介面。dispose 方法釋放資源。釋放時需要注意不要造成資源洩露。

// --------------- form1.cs -----------------------------------

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.linq;

using system.text;

using system.windows.forms;

}}// ------------------- form1.designer.cs -------------------------

base.dispose(disposing);

}#region windows form designer generated code}}

exe 或者 dll 檔案需要依賴其它檔案得以正常執行,

最簡單的做法是:把依賴檔案拷貝到客戶端,程式內部用相對路徑讀取。

這一般是可以的,但若客戶刪除了這些資源,則會導致不可預期的效果。

通過資源檔案,可以把這些檔案嵌入到 exe 或者 dll 中。

資源檔案可分為 2 類:.resx 和 .resources。前者是 xml 格式,後者是二進位制。

只有當前 solution 存在同名的 .cs 檔案時,.resx 檔案才能正常工作。resources 則無此限制。

通過 system.resources 下的 resourcewriter 可以生成資源檔案,generate 產生檔案,close 關閉檔案。

建立例項後,即可通過 addresource 方法新增資源。第乙個引數是標示符,可以在**中通過標示符使用資源。

資源檔案中一般存三種型別的資料:byte流(byte)、物件(object)和字串(string)。

resourcewriter rw = new resourcewriter ( "filename.resources" ) ;

rw.generate ( ) ; // 產生檔案

rw.close ( ) ;

// 新增資源

public void addresource ( str_identifier , byte [ ] ) ;

public void addresource ( str_identifier , object );

public void addresource ( str_identifier , str_value ) ;

4.1 新增多國語言支援

在介面上新增元件後,會生成 .resx 檔案,vs2010 中摺疊在對應的 form.cs 下。

這是預設語言的資源檔案,檔名為 form1.resx

若要開發其他語言版本,在對應 form 右側的屬性選單中,將 localizable 設為 true,並將 language 設為所需語言即可。

設定新的顯示文字後儲存,會生成對應語言的 .resx 檔案。檔名格式為 form1.language-location.resx,例如:簡體中文為 form1.zh-cn.resx

僅當 language 為 default 時才可以新增或刪除介面中的元件。

僅當設定為新 language,且修改過顯示內容後,才會建立對應的資源檔案。

僅當選定 form 時,才能在右側屬性選單中設定語言。若選中 form 中的 button、text 等元件時,無法設定本地化屬性。

4.2 獲取與設定執行時語言

兩個關鍵概念:

system.globalization.cultureinfo.installeduiculture.name; // 獲取當前執行語言

system.threading.thread.currentthread.currentuiculture = new system.globalization.cultureinfo( "zh-chs" ); // 設定當前執行語言

suspendlayout() 呼叫後控制項的布局邏輯被掛起,直到呼叫 resumelayout() 方法為止。

當調整控制項的多個屬性時,將先呼叫 suspendlayout 方法,然後設定控制項的 size、location、anchor 或 dock 屬性,

最後呼叫 resumelayout 方法以使更改生效。

標籤: c#, gui, 筆記

c 與 winform 介面開發

在 windows 下使用 vs2010 開發,未深入研究。c 與 net 開發,一堆又一堆的新名詞,頭暈目眩,比如 clr apartments sta mta com 吐槽無力,只乙個問題 微軟真的是軟體公司,而不是文學公司?form1.cs 與 form1.designer.cs 是 2 個檔...

WinForm介面開發之「分頁控制項」

在程式中,分頁總是永遠的話題,因為資料總是很多很多,分頁展示在程式效能和資料檢視感官方面得到很好的平衡,是一種良好的程式設計習慣和ui設計。winform中的分頁控制項可能沒有asp.net世界中的分頁控制項那麼豐富多彩,不過也有不少的分頁控制項可以採用,各個人的可能都有一些不同的東西,一些好的東西...

Winform開發的介面處理優化

在winform開發中,客戶體驗是個很好的參考性指標,如果乙個功能使用的時候感覺很流暢,說明我們的程式執行效率還不錯,但是隨著資料的真多,原先可能流程的地方可能會變得比較卡,這時候就需要追本索源,找到癥結並進行處理。但是,如果我們對winform開發有一定的經驗積累,有些耗時緩慢的介面處理一開始還是...