[C#] FileOpenDialog

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Deguchi
  • Registratie: Augustus 2005
  • Laatst online: 15-09 11:10
Hey,

Ik ben een kleine programma aan het maken in C# waarin de gebruiker aan de hand van een FileOpenDialog de mogelijkheid wil geven om een bestand of een folder te selecteren.
De functie FileOpenDialog laat echter enkel toe om een bestand te selecteren en geen folder. Een folder kan ik dan wel weer selecteren met de functie FolderBrowserDialog, maar die kan dan weer geen bestand selecteren...

Is er een bepaalde manier waarop ik toch een soort van browser venster kan hebben dat zowel een folder als een bestand als selectie aanneemt? (ik wil echt vermijden van extra knoppen te moeten plaatsen in mijn applicatie)
Het dient trouwens niet om daarna te openen, ik heb gewoon de string nodig van de locatie om later door te geven aan een bat-script.

Hopelijk is mijn probleem duidelijk genoeg :s

Acties:
  • 0 Henk 'm!

  • urk_forever
  • Registratie: Juni 2001
  • Nu online
Ik denk dat wat je wil niet kan. Op msdn wordt aangegeven dat als je een folder wilt laten selecteren je de FolderBrowserDialog moet gebruiken.

Zie hier: http://msdn.microsoft.com...forms.openfiledialog.aspx

Hail to the king baby!


Acties:
  • 0 Henk 'm!

  • PoweRoy
  • Registratie: April 2002
  • Laatst online: 15:48

PoweRoy

funky!

er zit een design flaw. wat nu als de user dubbel clicked op een folder in the dialog :? Moet die nu gekozen worden of geopend worden om de inhoud te laten zien.
Ik zou zeggen maak je eigen dialog (niet heel erg moeilijk) en implementeer dit gedrag.

(Of veel makkelijker zet bi jje houdige programma 2 buttons, open folder/file

[This space is for rent]


Acties:
  • 0 Henk 'm!

  • AtleX
  • Registratie: Maart 2003
  • Niet online

AtleX

Tyrannosaurus Lex 🦖

Ik zou toch de users vanuit het oogpunt van usability en duidelijkheid eerst laten kiezen of ze een folder of een file willen selecteren en dan een OFD of een FBD gebruiken. Alles in 1 dialog hacken maakt het niet echt duidelijk denk ik, aangezien het gegarandeerd op een OFD gaat lijken en mensen zich dus bijna verplicht voelen (door gewenning) om een file te selecteren.

Sole survivor of the Chicxulub asteroid impact.


Acties:
  • 0 Henk 'm!

  • Deguchi
  • Registratie: Augustus 2005
  • Laatst online: 15-09 11:10
Bedankt voor de reacties!

Vreesde al wel dat er geen propere oplossing was (Zoals PoweRoy zegt er zit idd een design flaw in).
Nuja, daar het gewoon voor intern gebruik ik zal ik proberen om mijn eigen versie van de Dialog te implementeren. (of ik zet er een combobox bij en laat ze daar kiezen tussen file/folder)

Nogmaals bedankt voor de reacties.

Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 10:43

Matis

Rubber Rocket

Deguchi schreef op vrijdag 29 mei 2009 @ 09:33:
Bedankt voor de reacties!

Vreesde al wel dat er geen propere oplossing was (Zoals PoweRoy zegt er zit idd een design flaw in).
Nuja, daar het gewoon voor intern gebruik ik zal ik proberen om mijn eigen versie van de Dialog te implementeren. (of ik zet er een combobox bij en laat ze daar kiezen tussen file/folder)

Nogmaals bedankt voor de reacties.
Dat zal ik niet doen, ik zal het stapsgewijs maken. Meestal trekken die OFD/FBD zoveel aandacht dat die combobox van je in het niet zal vallen. Ik zal er een sequentieel proces van maken.

Knopje "Selecteer bestand/map" --> Popupje "Bestand, Map, Cancel" --> FBD of OFD (of niets)

If money talks then I'm a mime
If time is money then I'm out of time


Acties:
  • 0 Henk 'm!

  • Eguna
  • Registratie: Januari 2002
  • Laatst online: 01-09 18:00

Eguna

AMD is liev

Is de map die je wilt hebben altijd de zelfde map als waar het aangewezen bestand in zit?
Want dan kan je met de OpenFileDialog1.FileName property gewoon ook de directory krijgen.

Als de aan te wijzen map een andere map is dan de map waar het aangewezen bestand in zit moet je toch écht met twee dialogs aan de gang, maar ook dat is makkelijk met 1 knop op te lossen.

in je button_click event:
code:
1
2
3
4
5
6
7
8
Messagebox.Show("Kies nu het bestand");
OpenFileDialog Ofd1 = new OpenFileDialog();
Ofd1.ShowDialog();
String StrFile = Ofd1.FileName;
Messagebox.Show("Kies nu een map");
FolderBrowserDialog fbd1 = new FolderBrowserDialog();
fbd1.ShowDialog();
String StrFolder = fdb1.SelectedPath;

Doe natuurlijk nog wel het een en andere aan fout afhandeling, als de gebruiker op annuleren drukt en dergelijke.

My life for hire!

Pagina: 1