在「基於winform的多語言軟體開發」一文中,說明載入統一載入資源檔案和動態重新整理介面的方法,現在使用上篇文章中介紹的方法,怎樣來快速開發介面。
對資源的的載入有兩種方法,一種是用虛擬方法直接載入資源到介面控制項中,另一種是用反射的方式來進行載入,這種方式需要一些編輯技巧。
定義下面的基類:
public classformbase : form
}
void languagehelper_languagechanged(object sender, languagechangedeventargs e)
}
protected override void onclosed(eventargs e)
base.onclosed(e);
}
// resharper disable inconsistentnaming
protected virtual void loadresourceui()
// resharper restore inconsistentnaming在子類中過載方法
protected override void loadresourceui()實際執行中如下圖所示:
下面我以第二種方法來實現介面載入,首先要求對控制項的名稱進行統一命名:
如label 以lbl開頭
button 以btn開頭
設定這樣的編碼規範後,還要對資源檔案的製作進行限制:
如下面視窗中對控制項命名如下:
private system.windows.forms.button btnaddform;
private system.windows.forms.label lbllanguage;對資源檔案的命名如下:
通過如下幫助類,進行資源載入,**如下:
public static classfreshui
internal static void freshuicontrol(control c)
else
else
}
foreach (control control in c.controls)
}
internal static t getresourceobject(string name,
string prefix)
}
}
return default(t);
}
private static string fixname(string name, string prefix)
return name;
}
}
public abstract classprocess
: iprocess
where t : system.windows.forms.
control
processt((t)t);
}
public abstract void processt(t t);
}
public inte***ceiprocess
public classformprocess : process
基於WinForm的多語言軟體開發
現在開發多語言的軟體方法比較多,使用資源或自定義的xml檔案來儲存選單字串資訊都是比較好的形式。現在我就來分享一下,我最近在做多語言開發的一些經驗。對於winform程式開發中,如果當前開啟多個視窗,就關係到在選中語言變化時,怎樣來通知所有視窗語言已經變化,應該重新重新整理介面。我在實踐採取思路是,...
WinForm程式的介面多語言切換
資源檔案在國際化中的運用 winform 國際化的軟體往往需要多種語言資源,如何在c 的winform中做到呢?且看以下分解 1 工程新增資源檔案 資源檔案命名方式 資源檔案主題名 語言區域.resx 例如資源檔案主題名為 resource1 我們準備了 中 英 日 三個語言版本的資源檔案,則對應的...
WinForm多語言版本實戰專案演練
關於如何實現 winform多語言版本 網上有很多實現技術方案,可以說是 琳琅滿目 包羅永珍 俗話說的好 一千個讀者就有一千個哈姆雷特!如果您工作中恰好也遇到這種開發需求,但是為了乙個自上手簡單 維護方便 擴充套件性強的winform多語言版本技術方案而感到煩惱的話,那麼很高興恭喜你看到了阿笨的本次...