アプリケーション全体に共通のフォーマットを設定/適用する方法は?
グリッドとコントロールは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;
}
}
これを行うのは良い方法ですか?
アドバイスどうもありがとう。