相关疑难解决方法(0)

用C#更改语言

我正在Windows上用C#开发一个多语言程序

如何在某些操作上更改Windows编写语言...
例如,在焦点事件上从英语更改为阿拉伯语.

谢谢

.net c# windows multilingual cultureinfo

13
推荐指数
1
解决办法
3万
查看次数

如何在Wndproc中专门在C#Winform中获取IME布局?

我有一个winform应用程序,我想在C#中获取当前输入语言的信息.我有windows 10机器,我选择了韩语.在选择韩语后,任务栏中有一个切换按钮可将输入语言更改为英语或韩语.

以下代码总是提供韩语,但是当我选择英语输入时它应该提供英语.

    [DllImport("user32.dll")]
    static extern IntPtr GetForegroundWindow();
    [DllImport("user32.dll")]
    static extern uint GetWindowThreadProcessId(IntPtr hwnd, IntPtr proccess);
    [DllImport("user32.dll")]
    static extern IntPtr GetKeyboardLayout(uint thread);
    public Form1()
    {
        InitializeComponent();
        IntPtr foregroundWindow = GetForegroundWindow();
        uint foregroundProcess = GetWindowThreadProcessId(foregroundWindow, IntPtr.Zero);
        int keyboardLayout = GetKeyboardLayout(foregroundProcess).ToInt32() & 0xFFFF;
        CultureInfo info = new CultureInfo(keyboardLayout);
        int keyboardLayoutId = info.KeyboardLayoutId;
        string name = info.Name;
    }
Run Code Online (Sandbox Code Playgroud)

有没有其他方法来获取输入语言信息.

您可以找到相同的附加图像.我强调A作为英语输入. TaskBar屏幕截图英文输入

TaskBar截图韩文输入

我想在WndProc方法中提供这些信息.

问题总结:所以我想处理当用户切换语言通过切换按钮键入时的情况,当用户通过切换按钮切换语言时,我希望任何wndproc消息或窗口边事件获取语言信息.

c# ime winforms

11
推荐指数
1
解决办法
968
查看次数

改变InputLanguage有什么作用?

我正在查看表单的一些代码,并看到以下内容:

void SomeTextBox_Enter(object sender, EventArgs e)
{
    InputLanguage.CurrentInputLanguage = GetLocalLanguage(DataModel.Country);
    SomeTextBox.ImeMode = ImeMode.On;
}
Run Code Online (Sandbox Code Playgroud)

如果适用,在哪里GetLocalLanguage()通过InputLanguage.InstalledInputLanguages并返回特定国家/地区.

这段代码的目的是什么?我们为什么要改变输入语言?

.net c# winforms

6
推荐指数
1
解决办法
179
查看次数

以编程方式更改"区域和语言"操作系统设置

我希望能够从C#程序更改操作系统(Windows 7)的区域和语言设置.我并不反对执行命令行命令,但我只是发现了如何启动" 区域和语言"对话框:control /name Microsoft.RegionAndLanguage

这是一个语言本地化问题,其中Controls DateTimePicker只能使用Windows 区域和语言设置(有关详细信息,请参阅此处); 但是,更新操作系统以符合应用程序的语言设置不仅限于此,而且最终是期望的目标.

建议和/或解决方法将不胜感激.

c# localization datetimepicker

5
推荐指数
1
解决办法
2万
查看次数