PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C# openfiledialog focus setzen


ravage
2015-02-26, 10:57:29
Ich schreibe gerade ein Programm in C# was ausschließlich über drei Tasten (Pfeiltaste hoch, Pfeiltaste runter und Enter) bedient wird. Diese Eingaben werden über eine Fußschalter gemacht.

Mein Problem:

Zum öffnen von Dateien würde ich gerne den openfiledialog (https://msdn.microsoft.com/de-de/library/system.windows.forms.openfiledialog%28v=vs.110%29.aspx)nutzen. Nur leider setzt er den Focus nach dem Öffnen des Fensters auf die Eingabeleiste unten (1) und nicht auf die Dateiliste (2).

Kennt jemand zufällig eine Möglichkeit den Focus zu ändern?

http://www.forum-3dcenter.org/vbulletin/attachment.php?attachmentid=51266&stc=1&d=1424944518

Monger
2015-02-26, 11:28:22
Der OpenFileDialog ist in vielerlei Hinsicht ein Exot. Der hat mit .NET nicht viel zu tun - .NET hat nur einen ganz schmalen Wrapper der den Aufruf ans Betriebssystem weiterleitet.

Das heißt: je nach Betriebssystem unterscheidet sich der OpenFileDialog mitunter deutlich. Du kannst dich auf nichts verlassen: weder darauf wie der Dialog heißt, noch in welcher Sicht er standardmäßig öffnet (Liste, Thumbnail...), noch wo die Buttons sind, und erst recht nicht wie die Tabreihenfolge ist bzw. wo der Fokus sitzt.

Für den Fall den du beschreibst willst du nunmal das größtmögliche Maß an Kontrolle über deine Software haben. Auch wenn es bitter ist: wahrscheinlich bist du besser dran wenn du den OpenFileDialog für deine Zwecke nachimplementierst.

ravage
2015-02-26, 11:50:43
Sowas habe ich schon befürchtet... Danke für die Bestätigung.

Der folderbrowserdialog sollte doch eigentlich mit den gegebenen drei Tasten bedienbar sein, oder? Dann bräuchte ich nur die in dem gewählten Folder liegenden Dateien auslesen und in eine Listbox eintragen. Diese müsste dann nur auf die Enter Taste reagieren.

Einherjer
2015-03-05, 20:06:12
Sowas habe ich schon befürchtet... Danke für die Bestätigung.

Der folderbrowserdialog sollte doch eigentlich mit den gegebenen drei Tasten bedienbar sein, oder? Dann bräuchte ich nur die in dem gewählten Folder liegenden Dateien auslesen und in eine Listbox eintragen. Diese müsste dann nur auf die Enter Taste reagieren.

Wie flexibel muss dass Ganze sein, d.h. hast du einen definierten Startordner der dann n-Unterordner hat, oder gibt es nur eine Ebene?

Verstehe ich das mit den 3 Tasten so, dass du mit Rauf/Runter navigierst und dann mit Enter entweder eine Ordnerebene tiefer gehst oder falls Du Dateien findest diese öffnest - wobei wie kommst Du dann wieder eine Ordnerebene zurück?
Was machst Du dann wenn die Datei offen ist, wie wird dann bedient?

Schau mal hier:
http://stackoverflow.com/questions/2416963/how-to-create-an-explorer-like-folder-browser-control
http://www.codeproject.com/Articles/13097/An-quot-Explorer-Style-quot-TreeView-Control
https://www.youtube.com/watch?v=55PCdfvlyYk