Question

Je suis sur Vista et j'utilise la classe Microsoft.Win32.OpenFileDialog.

Quand j'appelle ShowDialog() je reçois l'ancien dialogue de style XP: text alt

Comment puis-je obtenir nouveau Vista style de dialogue avec fallback l'ancien sur Windows XP? text alt

Un peu de grondement:

Je ne comprends pas vraiment pourquoi ils ne remplacent pas la boîte de dialogue dans Vista, mais conservés tous les deux. Maintenant, les applications existantes ne sera jamais ouvert nouvelle boîte de dialogue, à moins mis à jour.

Était-ce utile?

La solution

Oui, vous devriez passer à .NET 4.0 pour obtenir la nouvelle boîte de dialogue. Si vous êtes coincé sur 3,5, vous pouvez utiliser System.Windows.Forms.OpenFileDialog, il a fait obtenir la mise à jour pour utiliser la nouvelle interface IFileDialog COM.

Le repli est automatique, mais vous pouvez utiliser sa propriété AutoUpgradeEnabled à l'héritage de la force, si nécessaire. Ce qui il est peu probable qu'un programme .NET modifierait la boîte de dialogue.

Autres conseils

La première boîte de dialogue vous est montré une boîte de dialogue Enregistrer pas un dialogue ouvert.

Vous ne devriez avoir à faire ceci:

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
}

Référence 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
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top