質問

私はVistaを使用していて、使用しています Microsoft.Win32.OpenFileDialog クラス。

電話するとき ShowDialog() 私は得ます 老人 XPスタイルのダイアログ:alt text

どうすれば入手できますか 新しい フォールバックを備えたビスタスタイルのダイアログ 古いもの windowsxpで?alt text

ちょっとしたランブル:

なぜ彼らが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
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top