0

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

電話をかけるShowDialog()、古いXPスタイルのダイアログが表示されます。 代替テキスト

WindowsXP で古いダイアログにフォールバックする新しいVistaスタイルのダイアログを取得するにはどうすればよいですか?代替テキスト

ちょっとした騒ぎ:

なぜそれらがビスタのダイアログを置き換えなかったのかはよくわかりませんが、両方を保持しました。これで、レガシーアプリは、更新されない限り、新しいダイアログを開くことはありません。

4

3 に答える 3

2

はい、新しいダイアログを取得するには、.NET 4.0 にアップグレードする必要があります。3.5 に行き詰まっている場合は、System.Windows.Forms.OpenFileDialog を使用できます。新しい IFileDialog COM インターフェイスを使用するように更新されています。

フォールバックは自動ですが、必要に応じて AutoUpgradeEnabled プロパティを使用してレガシーを強制できます。そうではなく、.NET プログラムがダイアログを変更する可能性は低いです。

于 2010-10-07T19:52:35.287 に答える
1

最初に表示したダイアログは、開いているダイアログではなく、保存ダイアログです。

これを行う必要があるのは次のとおりです。

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
}
于 2010-10-07T19:41:23.030 に答える
1

参照 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
}
于 2010-10-07T19:46:22.320 に答える