[英]Change labelText in user control outside its own .cs
最近幾天一直在搜尋Google,但沒有結果。
我有一個名為MainForm的窗體,我在上面放置了四個用戶控件。 這些用戶控件包含標簽和按鈕。 現在,我創建了一個名為Language.cs的文件。在此文件中,當我在一個用戶控件中按下按鈕時,我想更改所有標簽的語言。 當我在ucSettings.cs中對此進行編碼時,我會這樣做:
this.label1.Text = res_man.GetString("label_text", cul);
但這不起作用,因為我的Resourcemanager和我的Culture信息都在另一個文件中。 所以我有
如您所見,在ComboBox中選擇一種語言后,我會更改文化信息:
private void Settings_Language_Cbox_SelectedIndexChanged(object sender, EventArgs e)
{
string SelectedIndex = Settings_Language_Cbox.SelectedItem.ToString();
switch (SelectedIndex)
{
case "English(English)":
ci = CultureInfo.CreateSpecificCulture("en-US");
LanguageSelection = 5;
break;
case "Nederlands(Dutch)":
ci = CultureInfo.CreateSpecificCulture("nl-NL");
LanguageSelection = 6;
break;
}
現在我想做類似的事情:
private void Settings_Save_Btn_Click(object sender, EventArgs e)
{
Language.Change();
}
這樣它將在Language.cs中調用我的Change方法,並將標簽更改為正確的語言。 但是現在即使我已經公開,我也無法訪問Language.cs中的任何標簽,我的Language.cs文件也無法從ucSettings.cs中獲取Resourcemanager和CultureInfo。 所以我的問題是,w是處理此問題的最佳方法? 我嘗試使用get / set方法,但這根本沒有解決,現在我不確定是否是因為我搞砸了。
編輯:我這樣做像ucSettings.cs
private void Settings_Save_Btn_Click(object sender, EventArgs e)
{
Settings_Language_Cbox.SelectedIndex = LanguageSelection;
BusinessClasses.Language language = new BusinessClasses.Language();
language.setLanguage();
}
Language.cs:
public class Language
{
public MainForm mainform;
public ucAnimalInfo animalinfo;
public ucAnimalInput animalinput;
public ucSettings settings;
public void setLanguage()
{
mainform.Animal_Info_Tab.Info_Id_Text.Text = mainform.Settings_Tab.rs.GetString("Info_Save_Btn", mainform.Settings_Tab.ci);
}
它仍然給出NullReferenceException,所以它不是真的工作,但到目前為止我得到的最接近。 rs和ci是資源管理器和cultureinfo
您的問題不是很清楚,您說的是用戶控制器,而是什么意思? 用戶控制...
當您不熟悉Windows Mobile / Compact Framework時,應該首先從一個簡單的項目開始,然后使用小步驟逐步發展到所需的內容。
語言資源本地化的一個好的開始可能在http://www.codeproject.com/Articles/28234/Survival-guide-to-do-resource-localization-using-C 。 使用它,然后使用簡單的用戶控件進行擴展,依此類推。
然后,還請閱讀http://www.codeproject.com/Articles/16091/User-Interface-Localization-with-the-Compact-Frame有關“即時”更改語言的信息。
如果您需要進一步的幫助,請僅提供您的想法/需求(我想允許並證明這一點)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.