Sécurité tabControl

Résolu
steph701 Messages postés 2 Date d'inscription jeudi 12 mai 2005 Statut Membre Dernière intervention 27 novembre 2007 - 27 nov. 2007 à 14:44
steph701 Messages postés 2 Date d'inscription jeudi 12 mai 2005 Statut Membre Dernière intervention 27 novembre 2007 - 27 nov. 2007 à 15:36
Salut à tous!

J'utilise un tabControl avec 4 onglets. J'aimerais bloquer l'accès au tabPage de deux des onglets à l'aide d'un systeme de boite de dialogue avec saisie utilisateur/mot de passe.

Tout d'abord, j'ai travaillé avec l'évenement click:

private void changementOnglet(object sender, EventArgs e)
{
        if (tabControlSAV.SelectedTab == ongletGestionDB
             || tabControlSAV.SelectedTab == ongletFacturation)
        {
                Console.WriteLine("Click");
                UserPass testAcces = new UserPass();
                testAcces.Show();
         }
}

Sur le principe, cela fonctionne mais la fenetre apparait et j'aimerais l'éviter c'est pourquoi je pensais travailler avec l'évenement Deselected -> se produit naprès la désélection d'une page mais la je ne sais pas comment gérer les onglets devant posséder une sécurité car selectedTab contient la position actuelle.

Aidez - moi!! De plus si quelqu'un sait où je peux trouver un exemple de boite de dialogue gérant un password je suis preneuse!

Salutations

2 réponses

aogie Messages postés 108 Date d'inscription vendredi 11 juillet 2003 Statut Membre Dernière intervention 27 novembre 2007
27 nov. 2007 à 15:16
En .NET 1.1 (événement Selected) :

1) Tu crées une méthode "ShowPwd" et un délégué associé, avec un argument en entrée, de type onglet.
si ton test se vérifie : onglet GestionDB ou onglet Facturation :
2) Tu conserves dans une variable locale la valeur de tabControlSAV.SelectedTab et tu rétablis immédiatement l'ancien onglet dans tabControlSAV.SelectedTab.
3) Tu effectues un BeginInvoke avec l'onglet conservé dans la variable locale.

4) Tu affiches ton formulaire de mot de passe, dans la méthode "ShowPwd" (cette méthode sera donc appelé par ton thread principal) :
               UserPass testAcces = new UserPass();
                testAcces.Show();
L'affichage est plus approprié en ShowDialog().
Si le mot de passe est valide, tu actives l'onglet passé en argument.

En .NET 2.0 (événement Selecting) :

1) si ton test se vérifie : onglet GestionDB ou onglet Facturation, tu affiches ton formulaire de mot de passe.
               UserPass testAcces = new UserPass();
                testAcces.Show();
L'affichage est plus approprié en ShowDialog().
Si le mot de passe est invalide, tu annules l'événement (Cancel = true).

-- AOGie --
3
steph701 Messages postés 2 Date d'inscription jeudi 12 mai 2005 Statut Membre Dernière intervention 27 novembre 2007
27 nov. 2007 à 15:36
Merci!!

C'est super!

bye
0
Rejoignez-nous