Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将用户控件中的labelText更改为其自己的.cs之外_C#_.net_User Controls_Windows Mobile 6.5 - Fatal编程技术网

C# 将用户控件中的labelText更改为其自己的.cs之外

C# 将用户控件中的labelText更改为其自己的.cs之外,c#,.net,user-controls,windows-mobile-6.5,C#,.net,User Controls,Windows Mobile 6.5,过去几天我一直在谷歌上搜索,但没有结果 我有一个叫做MainForm的表单,我在上面放置了四个用户控件。 这些用户控件包含标签和按钮。现在我创建了一个名为Language.cs的文件 在这个文件中,我想在按下一个用户控件中的按钮时更改所有标签的语言。 当我在ucSettings.cs中进行编码时,我会这样做: this.label1.Text = res_man.GetString("label_text", cul); 但这不起作用,因为我的Resourcemanager和我的文化信息都在另

过去几天我一直在谷歌上搜索,但没有结果

我有一个叫做MainForm的表单,我在上面放置了四个用户控件。 这些用户控件包含标签和按钮。现在我创建了一个名为Language.cs的文件 在这个文件中,我想在按下一个用户控件中的按钮时更改所有标签的语言。 当我在ucSettings.cs中进行编码时,我会这样做:

this.label1.Text = res_man.GetString("label_text", cul);
但这不起作用,因为我的Resourcemanager和我的文化信息都在另一个文件中。 所以我有

  • MainForm包含四个用户控件
  • 用户控件被称为ucAnimalInfo、ucAnimalInput、ucSettings和ucMenuStrip
  • 我在ucSettings中有一个按钮,必须更改语言
  • 应在文件Language.cs中设置文本
如您所见,当在组合框中选择语言时,我会更改区域性信息:

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。所以我的问题是,wat是处理这个问题的最好方法?我尝试使用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是resourcemanager和cultureinfo

你的问题不是很清楚,你说的是用户控制器,但意思是什么?用户控制

由于您是Windows Mobile/Compact Framework的新手,您应该首先从一个简单的项目开始,然后使用小步骤逐步发展到您想要的

语言资源本地化的一个良好开端可能是。 使用它,然后通过简单的用户控件进行扩展,等等

然后还可以阅读关于“在飞行中”改变语言的内容


如果您需要进一步的帮助,请提供您的想法/需要(我想允许这一点并表明这一点)。

我一定会阅读这些文章的,谢谢,我还编辑了我的帖子,试图更好地解释它。