Ich arbeite an Winforms-Anwendung in C #. Was ich erreichen möchte ist, eine Datei von einem Benutzer zu bekommen, für den ich den folgenden Code verwende:
%Vor%Jetzt funktioniert alles gut, aber ich möchte 3 Optionsfelder in das gleiche Dialogfeld einfügen, was bedeutet, dass ich jetzt zwei Dinge aus diesem Dialogfeld bekommen würde
%Vor%Wie erreiche ich das?
Ja, das ist möglich, ich habe die gleiche Art der Anpassung mit SaveFileDialog
erfolgreich durchgeführt und es ist ziemlich interessant.
Folgen Sie den folgenden Links:
Auch meine eigenen Fragen werden dir helfen:
Ändern Sie die Standardanordnung der Schaltflächen Speichern und Abbrechen in SaveFileDialog
So stoppen Sie den Überschreibprompt beim Erstellen von SaveFileDialog mit GetSaveFileName
Sie müssen dazu WinAPI
verwenden und Sie müssen die ShowDialog
-Methode in Ihr eigenes schreiben, indem Sie die GetOpenFileName
windows-Funktion aufrufen, anstatt .net's OpenFileDialog
aufzurufen. Der GetOpenFileName
erstellt die Fenster OpenFileDialog
. (Siehe Ссылка ). Dies zusammen mit dem Schreiben der HookProc-Prozedur und dem Erfassen von Ereignissen wie WM_INITDIALOG, CDN_INITDONE
darin hilft Ihnen, das zu tun, was Sie wollen.
Um Radiobuttons etc. hinzuzufügen, müssen Sie die Windows-Funktionen wie CreateWindowEx
und SendMessage
.... aufrufen.
Der 2. Link hat die genaue Richtung zur Anpassung ...
Fragen Sie nach Erklärungen ...
Unter XP müssen Sie die Methode hook procedure und die API GetOpenFileName verwenden. Unter Vista und später wird dies zu einem schrecklich aussehenden Dateidialog mit begrenzter Nützlichkeit führen, z. keine Suche Unter Vista sollten Sie IFileDialog verwenden und um das Dialogfeld anzupassen, benötigen Sie die IFileDialogCustomize-Schnittstelle. Da die neuen Vista-Dialoge als COM-Schnittstellen verfügbar sind, sind sie in .net sehr einfach zu verwenden.
Tags und Links c# winforms openfiledialog customizing