整个应用程序的自定义格式
Custom format for entire application
如何set/enforce整个应用的通用格式?
像 dateTimePicker
这样的网格和控件只是为了在开发时不用担心它?
我试图在我自己的控件包装器中设置,但每次我 运行 设计器都会覆盖这个值。怕改的时候到处都得改啊!太可怕了 ;)
另一个想法是在
中的 .cs
文件中设置它
SetInitValues( customformat = Format+From_Config_file_or_settings;)
或者什么..?
但在这种情况下,我必须在每个表单上添加此方法。
还有其他更好的方法吗?
编辑:根据我创建的以下答案:
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
public static void Main()
{
...
SetCustomFormatting();
...
}
private static void SetCustomFormatting()
{
// Application.CurrentCulture.DateTimeFormat is ReadOnly.
System.Globalization.CultureInfo cultureInfo = new System.Globalization.CultureInfo("pl-PL");
System.Globalization.DateTimeFormatInfo dateTimeInfo = new System.Globalization.DateTimeFormatInfo();
// without this all strings like month names are not translated!
dateTimeInfo = (System.Globalization.DateTimeFormatInfo)Application.CurrentCulture.DateTimeFormat.Clone();
dateTimeInfo.DateSeparator = ".";
dateTimeInfo.LongDatePattern = "dddd, dd MMMM yyyy";
dateTimeInfo.ShortDatePattern = "yy.MM.dd";
dateTimeInfo.LongTimePattern = "hh:mm:ss tt";
dateTimeInfo.ShortTimePattern = "hh:mm tt";
dateTimeInfo.FullDateTimePattern = "yyyy.MM.dd HH:mm:ss";
cultureInfo.DateTimeFormat = dateTimeInfo;
Application.CurrentCulture = cultureInfo;
Thread.CurrentThread.CurrentCulture = cultureInfo;
Thread.CurrentThread.CurrentUICulture = cultureInfo;
CultureInfo.DefaultThreadCurrentCulture = cultureInfo;
CultureInfo.DefaultThreadCurrentUICulture = cultureInfo;
}
}
这样做好吗?
非常感谢您的建议。
您可以使用 Culture 属性 设置格式和其他相关设置,因此您不必手动调整所有内容。
如何set/enforce整个应用的通用格式?
像 dateTimePicker
这样的网格和控件只是为了在开发时不用担心它?
我试图在我自己的控件包装器中设置,但每次我 运行 设计器都会覆盖这个值。怕改的时候到处都得改啊!太可怕了 ;)
另一个想法是在
中的.cs
文件中设置它
SetInitValues( customformat = Format+From_Config_file_or_settings;)
或者什么..?
但在这种情况下,我必须在每个表单上添加此方法。
还有其他更好的方法吗?
编辑:根据我创建的以下答案:
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
public static void Main()
{
...
SetCustomFormatting();
...
}
private static void SetCustomFormatting()
{
// Application.CurrentCulture.DateTimeFormat is ReadOnly.
System.Globalization.CultureInfo cultureInfo = new System.Globalization.CultureInfo("pl-PL");
System.Globalization.DateTimeFormatInfo dateTimeInfo = new System.Globalization.DateTimeFormatInfo();
// without this all strings like month names are not translated!
dateTimeInfo = (System.Globalization.DateTimeFormatInfo)Application.CurrentCulture.DateTimeFormat.Clone();
dateTimeInfo.DateSeparator = ".";
dateTimeInfo.LongDatePattern = "dddd, dd MMMM yyyy";
dateTimeInfo.ShortDatePattern = "yy.MM.dd";
dateTimeInfo.LongTimePattern = "hh:mm:ss tt";
dateTimeInfo.ShortTimePattern = "hh:mm tt";
dateTimeInfo.FullDateTimePattern = "yyyy.MM.dd HH:mm:ss";
cultureInfo.DateTimeFormat = dateTimeInfo;
Application.CurrentCulture = cultureInfo;
Thread.CurrentThread.CurrentCulture = cultureInfo;
Thread.CurrentThread.CurrentUICulture = cultureInfo;
CultureInfo.DefaultThreadCurrentCulture = cultureInfo;
CultureInfo.DefaultThreadCurrentUICulture = cultureInfo;
}
}
这样做好吗?
非常感谢您的建议。
您可以使用 Culture 属性 设置格式和其他相关设置,因此您不必手动调整所有内容。