2016-06-16 1 views
1

J'ai un MenuStrip dans mon application Windows Form qui contient des éléments de menu.Masquer certains menus à partir de MenuStrip Winfoms

Je souhaite vérifier certaines conditions et désactiver la visibilité de MenuItems dans la barre MenuStrip. Supposons que l'utilisateur normal accède à l'application, certains éléments de menu seront masqués et si l'utilisateur Admin accède à l'application, tous les éléments Menu devraient être visibles.

Ceci est mon code (je ne sais pas à ce sujet) qui n'a pas fonctionné.

public Visite(string username) 
    { 
     InitializeComponent(); 
     label1.Text = username; 

     using (SqlConnection con = new SqlConnection("Data Source=ADMIN-PC\\SQLEXPRESS;Initial Catalog=timar;Integrated Security=True")) 
     { 
      con.Open(); 
      bool UserIsAdmin = true; 
      using (SqlCommand cmd = new SqlCommand("select * from [User] where Role [email protected]", con)) 
      { 
       cmd.Parameters.AddWithValue("@Role", "Admin"); 

       UserIsAdmin = (int)cmd.ExecuteScalar() > 0; 
      } 
      if (UserIsAdmin == false) 
      { 
       utilisateurToolStripMenuItem.Visible = false; 
      } 
      else 
      { 
       utilisateurToolStripMenuItem.Visible= true; 
      } 
      con.Close(); 
     } 

    } 

Aidez-nous s'il vous plaît. Merci d'avance.

+0

Set utilisateurToolStripMenuItem.Visible = false et non activé, activé affichera toujours vous le menu – Pankaj

+0

je pense Vous devez activer readonly – Thomas

Répondre

0

Vous parlez de visibilité dans votre question, mais votre code indique Activé.

Ce sont deux choses complètement différentes.

Si vous restez avec visbility vous devez définir l'utilisateurToolStripMenuItem.Visible false

+0

Désolé, je l'ai édité, Le problème persiste à nouveau –

0

essayer .. Ce

public Visite(string username) 
{ 
    InitializeComponent(); 
    label1.Text = username; 
    using (SqlConnection con = new SqlConnection("Data Source=ADMIN-PC\\SQLEXPRESS;Initial Catalog=timar;Integrated Security=True")) 
    { 
     con.Open(); 
     bool UserIsAdmin = false; 
     using (SqlCommand cmd = new SqlCommand("select * from [User] where Role [email protected]", con)) 
     { 
      cmd.Parameters.AddWithValue("@Role", "Admin"); 
      UserIsAdmin = (int)cmd.ExecuteScalar() > 0; 
     } 
     utilisateurToolStripMenuItem.Visible = UserIsAdmin; 
    } 
} 
+0

Cela ne fonctionne pas, 'utilisateurToolStripMenuItem' toujours visible pour tous les types d'utilisateurs –

+0

@Yosra, Déboguer et voir ce que vaut la valeur de" UserIsAdmin " renvoyé de la base de données . – Pankaj

+0

La valeur de 'UserIsAdmin' est TRUE –