Vista/Win7で新しいOpenFileDialogを自動的に開くにはどうすればよいですか?
-
28-09-2019 - |
質問
私はVistaを使用していて、使用しています Microsoft.Win32.OpenFileDialog
クラス。
電話するとき ShowDialog()
私は得ます 老人 XPスタイルのダイアログ:
どうすれば入手できますか 新しい フォールバックを備えたビスタスタイルのダイアログ 古いもの windowsxpで?
ちょっとしたランブル:
なぜ彼らがVistaのダイアログを置き換えなかったのか本当に理解していませんが、両方を維持しました。レガシーアプリは、更新されない限り、新しいダイアログを開くことはありません。
解決
はい、新しいダイアログを取得するには、.NET 4.0にアップグレードする必要があります。 3.5に閉じ込められている場合は、System.Windows.forms.openfileDialogを使用できます。新しいifiledialog comインターフェイスを使用するためのアップデートを取得しました。
フォールバックは自動ですが、必要に応じて、そのAutOUPGradeEnabledプロパティを使用してレガシーを強制することができます。 .NETプログラムがダイアログを変更する可能性は低いです。
他のヒント
あなたが示した最初のダイアログは、オープンダイアログではなく保存ダイアログです。
これを行う必要があるはずです:
OpenFileDialog OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.InitialDirectory = "c:\\";
openFileDialog1.Filter = "My files (*.myfile)|*.myfile|All files (*.*)|*.*";
openFileDialog1.FilterIndex = 1;
openFileDialog1.RestoreDirectory = true;
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
//openFileDialog1.FileName
}
参照System.Windows.Forms
using System.Windows.Forms
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.InitialDirectory = "c:\\" ;
openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*" ;
openFileDialog1.FilterIndex = 2 ;
openFileDialog1.RestoreDirectory = true ;
if(openFileDialog1.ShowDialog() == DialogResult.OK)
{
//Do Stuff
}
所属していません StackOverflow