Bonjour à tous les forumeurs,
Je lutte avec C# et la librairie system.Windows.Forms depuis quelques heures maintenant et je fais donc appel à vos connaissances avant de jeter le PC par la fenêtre. :-)
J'ai réalisé un petit programme qui ouvre un fichier à l'aide de OpenFileDialog, puis demande à l'utilisateur via un SaveDialogFile dans quel fichier enregistrer les modifications qui seront faites sur le premier fichier ouvert. Vous me suivez?
Tout ceci dans une classe public où j'ai créé une méthode de classe Main (pas d'instanciation d'objets donc).
J'ouvre le premier dialog (OpenFileDialog) avec la méthode ShowDialog(). Tout se passe bien, la Dialog s'ouvre en premier plan.
Le second appel à ShowDialog sur l'autre object (SaveFileDialog) fait apparaître cette dialog en arrière plan systématiquement. Du coup, cette fenêtre est cachée derrière toutes les autres fenêtres ouvertes sur le bureau.
Je suis incapable de trouver des cas similaires sur le net. Et je crois que je vais devenir zinzin avec cette histoire.
Je n'ai trouvé aucune propriété ou méthode pour SaveFileDialog qui permette de forcer son affichage en premier plan.
Pour info, j'ai aussi tenté d'ouvrir deux OpenFileDialog à la suite. Même verdict. La première fenêtre s'ouvre en premier plan, la seconde en arrière plan.
Le code en résumé pour vous éclairer :
Merci d'avance pour votre aide,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 using System.Windows.Forms; ... public class ModifiyDumpFile { public static void Main(string[] args) { OpenFileDialog dlg_input_file = new OpenFileDialog(); dlg_input_file.Filter = "Dump file to modify (*.*)|*.*"; dlg_input_file.Title = "Select the dumpfile you want to change"; if (dlg_input_file.ShowDialog() == DialogResult.OK) { SaveFileDialog dlg_output_file = new SaveFileDialog(); dlg_output_file.Filter = "Dump file to save (*.dump)|*.dump"; dlg_output_file.Title = "Create the modified dump file"; dlg_output_file.FilterIndex = 1; dlg_output_file.RestoreDirectory = true; dlg_output_file.OverwritePrompt = true; // C'est ci-dessous que le problème survient. La fenêtre est en arrière plan. if(dlg_output_file.ShowDialog() == DialogResult.OK) { ...
Mathieu
Partager