単純な .Net フォーム (FolderBrowserDialog) を呼び出しているときに、ShowDialog() の呼び出しに続いて予告なしにカルチャが変更されていることが判明しました。
string ChooseFolder(ref string sTitle, string sCurDir)
{
string folderPath = sCurDir;
FolderBrowserDialog folderBrowserDialog1 = new FolderBrowserDialog();
//folderBrowserDialog1.RootFolder = Environment.SpecialFolder.MyComputer;
//folderBrowserDialog1.SelectedPath = sCurDir;
//folderBrowserDialog1.Description = sTitle;
string str1 = System.Threading.Thread.CurrentThread.CurrentCulture.Name;
string str2;
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
{
str2 = System.Threading.Thread.CurrentThread.CurrentCulture.Name;
folderPath = folderBrowserDialog1.SelectedPath;
}
string str3 = System.Threading.Thread.CurrentThread.CurrentCulture.Name;
return folderPath;
}
具体的には、str1 は現在のロケール (米国以外) を示していますが、str2 と str3 は「en-US」ロケールを示しています。それはメインスレッドにあり、それに影響を与える可能性のあるものは他に見つかりませんでした。
あなたのアイデアを聞いてうれしいです:)