Bizarres FolderBrowserDialog-Verhalten

8

Ich unterstütze eine alte Version einer C # -Anwendung, die auf .NET 3.5 läuft. Wir haben ein Problem mit dem FolderBrowserDialog unter Windows Vista (entweder 32 oder 64-Bit) gefunden.

Im Grunde ist es so, dass der Dialog erscheint, aber nur der root Desktop-Knoten wird angezeigt, nicht einmal in der Lage, ihn zu erweitern, um etwas anderes anzuzeigen. Offensichtlich ist das unmöglich zu verwenden.

Nach einer großen Menge an Versuch und Irrtum gelang es mir schließlich, etwas Nutzbares zu bekommen, indem ich die RootFolder -Eigenschaft vor den Rest des Setups setzte:

%Vor%

Das fast funktioniert; Allerdings habe ich das bizarre Problem, dass dann das SelectedPath (per Definition der Inhalt von textBoxTo ) ein Pfad zum Home-Verzeichnis des aktuellen Benutzers ist, es wird nicht automatisch zu diesem Pfad navigieren, sondern nur das Mein Computerknoten wurde auf eine Ebene erweitert. Es ist vollkommen in Ordnung für jeden anderen Weg.

Ich bin mir sicher, dass Ihre erste Vermutung ein Erlaubnisproblem sein würde, genauso wie meine Intuition. Es scheint nicht zu sein, dieses Problem tritt normal und als Administrator für Standard-und Administratorkonten ausgeführt. Es ist eine saubere Installation, natürlich, keine seltsamen Berechtigungen oder irgendetwas.

Das ist ziemlich ärgerlich, wenn sich all unsere Standardwerte im aktuellen Benutzerverzeichnis befinden!

Hinweis: Dieses nur geschieht innerhalb der Anwendung. es ist, soweit ich gesehen habe, nicht mit einer kleinen Testanwendung reproduzierbar.

Irgendwelche Ideen zu was könnte das verursachen?

Update: Screenies:
Das ist das Verhalten, das ich will ( erhalten von einer kleinen Test-App)
Das ist, was ich mit der Standard-Eigenschaft
Das erhalte ich, indem ich das Stammverzeichnis auf Arbeitsplatz setze Hinweis: Das letzte Bild hatte dieselbe SelectedPath wie das erwartete Bild ...

    
Alexander R 02.04.2012, 08:27
quelle

3 Antworten

1

Ich hatte ein ähnliches Problem. In Windows Vista und Windows 7 der folgende Code:

%Vor%

gibt den Desktop zurück. Wenn Sie in Windows Explorer suchen, ist der Stamm der Struktur Desktop, nicht Arbeitsplatz wie in Windows XP. Um dieses Problem zu lösen, verwenden Sie stattdessen:

%Vor%

Jeder Windows-Computer hat ein C: \ -Laufwerk, damit wird Ihr Problem gelöst.

Ich hoffe, das hilft dir.

    
Alexandru Dicu 29.11.2012 13:01
quelle
0

Wenn Sie nur auf die privaten Ordner des Benutzers zugreifen, verwenden Sie

%Vor%
  

Nur der angegebene Ordner und alle Unterordner, die darunter liegen   erscheint im Dialogfeld und kann ausgewählt werden. Die SelectedPath-Eigenschaft   bestimmt zusammen mit RootFolder, was der ausgewählte Ordner sein wird   wenn das Dialogfeld angezeigt wird, solange SelectedPath ein ist   absoluter Pfad, der ein Unterordner von RootFolder ist (oder genauer gesagt,   zeigt auf einen Unterordner des Shell-Namespace, der von dargestellt wird   RootFolder).

Kurz gesagt, Sie können keinen privaten Ordner als startup selectedPath eingeben, es sei denn, RootFolder befindet sich bereits im privaten Ordner des aktuellen Benutzers.

Weitere Informationen finden Sie in Ссылка

    
jornare 03.04.2012 08:01
quelle
0

VB.NET-Code

%Vor%

Versuchen Sie im Grunde ein anderes Verzeichnis und vergewissern Sie sich, dass das ausgewählte Verzeichnis existiert. Wenn Sie immer noch Probleme haben, ist wahrscheinlich auf einen Fehler im System zurückzuführen.

    
Croket 21.04.2012 20:45
quelle