2008-09-18 2 views
11

.net 2 winforms 응용 프로그램에서 전체 응용 프로그램의 culture를 설정하는 좋은 방법은 무엇입니까?
새 스레드마다 CurrentThread.CurrentCulture를 설정하면 반복적이고 오류가 발생하기 쉽습니다.
앱이 시작되고 잊어 버릴 때 설정하는 것이 이상적입니다.전체 응용 프로그램에 대해 CurrentCulture를 설정하는 쉬운 방법은 무엇입니까?

+3

이것은 아마도 오래된 뉴스 일 수 있지만 .NET 4.5에서 원하는대로 할 수 있습니다 ([링크] 참조 (http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.defaultthreadcurrentculture .aspx)). 'DefaultThreadCurrentUICulture'와'DefaultThreadCurrentCulture'를 모두 설정해야합니다. – nooblar

+1

이 주제는 상당히 오래된 것으로 알고 있지만 모든 신규 사용자는 다음을 볼 수 있습니다 : http://stackoverflow.com/questions/28426349/custom-format-for-entire-application – Tariktiri

답변

12

.NET에서 스레드의 culture는 단일 응용 프로그램/프로세스에서 볼 때 시스템의 문화권입니다. .NET에서이를 재정의 할 방법이 없다면 새 스레드마다 CurrentCulture를 계속 설정해야합니다. 내가 스레드를 테스트하지 않았기 때문에,

static void Main() 
{ 
    System.Globalization.CultureInfo cultureInfo = new System.Globalization.CultureInfo("fi-FI"); 
    Application.CurrentCulture = cultureInfo; 
    Application.EnableVisualStyles(); 
    Application.SetCompatibleTextRenderingDefault(false); 
    Application.Run(new Form1()); 
} 

내가 도움이된다면 확실하지 않다 :

+2

> 시스템 문화권 엄격히 말하면 문화권은 현재 사용자의 국가 별 설정에 해당합니다. – Joe

1

당신은 응용 프로그램의 현재 문화이 방법을 설정할 수 있습니다.

편집 : 작동하지 않습니다. 모든 스레드에 현재 문화를 설정해야한다고 생각합니다.

+2

나는 당신의 해결책을 시도했지만 아무런 효과가 없었다. –

+4

'Application.CurrentCulture'는'Thread.CurrentThread.CurrentCulture'에 위임하여 응용 프로그램의 메인 스레드에만 설정합니다. – adrianbanks

관련 문제