如何为整个 winform 应用程序设置文化

我想为整个 winform 应用程序设置文化。

我怎样才能做到这一点?

我Program.cs像这样改变了我的文件:


using System;

using System.Collections.Generic;

using System.Globalization;

using System.Linq;

using System.Threading.Tasks;

using System.Windows.Forms;


namespace Divar

{

    static class Program

    {

        /// <summary>

        /// The main entry point for the application.

        /// </summary>

        [STAThread]

        static void Main()

        {

            var culture = new CultureInfo("en-US");

            CultureInfo.DefaultThreadCurrentCulture = culture;

            CultureInfo.DefaultThreadCurrentUICulture = culture;


            Application.EnableVisualStyles();

            Application.SetCompatibleTextRenderingDefault(false);

            Application.Run(new RadForm1());

        }

    }

}

我做对了吗?

还有另一个链接:(请看一看)

https://www.c-sharpcorner.com/forums/set-cultureinfo-for-winform-application

这取得了有限的成功,因此在 InitializeComponent() 之前的“Form1”顶部,我放置了:


    System.Globalization.CultureInfo cultureInfo = new System.Globalization.CultureInfo("en-GB");

    Application.CurrentCulture = cultureInfo;

    System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("en-GB");

是否有必要在每种形式的 InitializeComponent() 之前添加这三行?


慕村9548890
浏览 236回答 1
1回答

MM们

将这两个设置Main为所需的文化: CultureInfo.DefaultThreadCurrentCulture CultureInfo.DefaultThreadCurrentUICulture此外,您可以随时更改Application.CurrentCulture应用程序当前线程上的文化。[STAThread]static void Main(){&nbsp; &nbsp; var culture = CultureInfo.GetCultureInfo("en-US");&nbsp; &nbsp; // this may fail sometimes: (see Drachenkatze's comment below)&nbsp; &nbsp; // var culture = new CultureInfo("en-US");&nbsp; &nbsp; //Culture for any thread&nbsp; &nbsp; CultureInfo.DefaultThreadCurrentCulture = culture;&nbsp; &nbsp; //Culture for UI in any thread&nbsp; &nbsp; CultureInfo.DefaultThreadCurrentUICulture = culture;&nbsp; &nbsp; //Culture for current thread (STA)&nbsp; &nbsp; //no need for: Application.CurrentCulture = culture;&nbsp; &nbsp; //Thread.CurrentThread.CurrentCulture == Application.CurrentCulture&nbsp; &nbsp; //no need for: Thread.CurrentThread.CurrentCulture = culture;&nbsp; &nbsp; Application.EnableVisualStyles();&nbsp; &nbsp; Application.SetCompatibleTextRenderingDefault(false);&nbsp; &nbsp; Application.Run(new RadForm1());}
打开App,查看更多内容
随时随地看视频慕课网APP