Bonjour,
J'utilise un ExitThread pour quitter mon application lorsque que j'appui sur le bouton quitter : cela fonctionne très bien.
Mais j'ai un parametre que je vais chercher dans ma base de bonnées, s'il est à false, alors les nouveaux utilisateurs ne sont pas ajoutés automatiquement.
Comme je ne suis pas dans la base des user, une Messagebox me dit que je ne peut pas accéder à l'appli et là normalement l'appli devrai se fermer car j'appelle la fonction ExitThread.
J'ai compilé pas à pas, il passe bien là ou je veux mais il ne ferme rien.
Je me disais qu'il était peut être impossible de faire un ExitThread dans l'initiation?
Surveillant est mon contexte qui est "Runné" dans mon Main :
Et voici le code après le clique sur le bouton quitter qui marche bien.
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78 public class Surveillant : ApplicationContext { (...) public Surveillant() { RecupParametre(); Profil(); formCount = 0; oMenu = new Menu(this); ConsultSearch = new F_ConsultSearch(this); ConsultSearch.Closed += new EventHandler(OnFormClosed); formCount++; ConsultRef = new F_ConsultRef(this, false); ConsultRef.Closed += new EventHandler(OnFormClosed); formCount++; oMenu.Show(); ConsultRef.Show(); ConsultSearch.Show(); this.MiseAJours += new Surveillant.MiseAJoursHandler(ConsultRef.OnMiseAJours); } public void RecupParametre() { SqlDataAdapter m_daDataAdapter; SqlConnection ConsultConnection = new SqlConnection(strConnexionSecurite); m_daDataAdapter = new SqlDataAdapter("RecupParametre", ConsultConnection); m_daDataAdapter.Fill(TableParametre); ConsultConnection.Close(); } public void Profil() { //On cherche si la personne connectée est inscrite dans la base des user SqlDataAdapter m_daDataAdapter; DataTable MaDataTable = new DataTable(); SqlConnection ConsultConnection = new SqlConnection(strConnexionSecurite); m_daDataAdapter = new SqlDataAdapter("RecupProfil '" + LoginUser + "';", ConsultConnection); m_daDataAdapter.Fill(MaDataTable); ConsultConnection.Close(); if (MaDataTable.Rows.Count != 0) { // Le user est dans la base alors on prend en compte son profil IdProfil = (int)MaDataTable.Rows[0]["User_Profil_Id"]; } else if (TableParametre.Rows[0]["Valeur"].ToString() == "True") { //On va récupérer dans l'active directory le nom de la personne connectée puis on ajoute le user avec le profil de sécurité le plus faible (...) } else { // Comme la personne n'est pas dans la base et que l'on ajoute pas les user automatiquement alors on lui dit qu'il ne peut pas accéder à l'appli et on ferme. MessageBox.Show("Vous n'êtes pas autorisé à utiliser cette application."); ExitThread(); } ConsultConnection.Close(); } public void OnFormClosed(object sender, EventArgs e) { formCount--; if (formCount == 0) { ExitThread(); } }
Merci d'avance si vous avez une idée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9private void Exit_Click(object sender, EventArgs e) { DialogResult Quitter = MessageBox.Show("Voulez vous vraiment quitter l'application ?", "Quitter", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2); if (Quitter == DialogResult.Yes) { oSurveillant.ExitThread(); } }







Répondre avec citation




Partager