Bonjour,
est ce que c'est possible de fermer un MessageBox apparait par code c# sans utiliser intervention de l'utilisateur ?
Version imprimable
Bonjour,
est ce que c'est possible de fermer un MessageBox apparait par code c# sans utiliser intervention de l'utilisateur ?
MessageBox ne le permet pas.
Tu n'as plus qu'à créer ta propre forme de dialogue à lancer ainsi :
Code:
1
2 MyDialogForm TheDialogForm = new MydialogForm() ; DialogResult TheDialogResult=TheDialogForm.ShowDialog() ;
Ben oui, mais ça te permet pas de la fermer, vu que le ShowDialog est bloquant...
De toutes façons, je suppose que ce n'est pas son programme qui crée la MessageBox (sinon il suffirait de ne pas l'afficher du tout)
Une solution serait d'envoyer une frappe de touche "Entrée" avec la méthode SendKeys.Send. Ca suppose que la MessageBox ait le focus...
Il suffit de mettre un timer dans la form de dialog pour tester le temps écoulé ou tout autre chose ...Citation:
Ben oui, mais ça te permet pas de la fermer, vu que le ShowDialog est bloquant...
non c pas moi qui crée le MessageBox, je traite un programme qui lance messagebox d'une manière externe et je veux disparaitre le message dans mon code c#
Bonjour,
Voici une très bonne solution pour pouvoir contrôler à peut prêt ce qu'on veut. J'utilise souvent cette solution pour valider les "confirm" javascript :
Il suffit de remplacer "#32770" par le nom de la classe de la fenêtre que l'on souhaite valider et "Message de la page Web" par son titre. Pour trouver le nom de la classe et le titre il suffit d'utiliser Spy++ fournit avec Visual Studio.Code:
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
26
27
28
29
30
31
32 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.InteropServices; namespace Validate { class Program { [DllImport("USER32.DLL")] public static extern IntPtr FindWindow(string lpClassName, string lpWindowName); [DllImport("USER32.DLL")] public static extern bool SetForegroundWindow(IntPtr hWnd); static void Main(string[] args) { IntPtr pointeur = IntPtr.Zero; while (true) { pointeur = FindWindow("#32770", "Message de la page Web"); if (pointeur != IntPtr.Zero) { SetForegroundWindow(pointeur); System.Windows.Forms.SendKeys.SendWait("{ENTER}"); pointeur = IntPtr.Zero; } } } } }
Tu peux même faire de cette source un service si ta MessageBox est trop souvent récurrente.
Bonne journée à tous.
est ce que ces deux fonctions sont disponibles dans windows Mobile 5.0 (compact framework )??Code:
1
2
3
4 [DllImport("USER32.DLL")] public static extern IntPtr FindWindow(string lpClassName, string lpWindowName); [DllImport("USER32.DLL")] public static extern bool SetForegroundWindow(IntPtr hWnd);
je pense que oui... vérifie dans la doc