我在使用Vista,我正在使用Microsoft.Win32.OpenFileDialog
类。
当我致电ShowDialog()
时,我得到旧的 XP风格的对话框:
如何在WindowsXP上获得新的 Vista风格的对话框并回退到旧版?
有点隆隆声:
我真的不明白为什么他们没有替换vista中的对话框,而是保留了它们。现在,旧版应用程序永远不会打开新对话框,除非更新。
答案 0 :(得分:2)
是的,您必须升级到.NET 4.0才能获得新对话框。如果您坚持使用3.5,那么您可以使用System.Windows.Forms.OpenFileDialog,它确实获得了使用新的IFileDialog COM接口的更新。
回退是自动的,但如果需要,您可以使用其AutoUpgradeEnabled属性强制传统。不是这样,.NET程序不太可能修改对话框。
答案 1 :(得分: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
}
答案 2 :(得分: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
}