0

我在 Vista 上,我正在使用Microsoft.Win32.OpenFileDialog类。

当我打电话时,ShowDialog()我得到了旧的XP 样式对话框: 替代文字

如何在 WindowsXP 上 获得回退到旧对话框的新Vista 样式对话框?替代文字

一点隆隆声:

我真的不明白为什么他们没有替换 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 回答