none
Mostrar u ocultar elementos de un menustrip RRS feed

  • Pregunta

  • Buenas tardes!!

    Espero me puedan ayudar con mi problema.

    Tengo un MenuStrip en uno de sus elementos tengo una ventana donde tengo una lista de checkboxs con los nombres de cada ventana. Guardo los estados de cada checbox en una tabla de sql server.

    Lo que quiero hacer es que al momento de hacer un select con los estados del check me habilite o des habilite los items del menu strip. Espero haberme explicado. De ante mano gracias cualquier ayuda es buena.  

    martes, 8 de diciembre de 2015 22:34

Respuestas

  • Saludos Gaspar.

    Veamos si comprendí la problemática: Tienes la ventana que muestras en la imagen (que contiene un control treeView), de la cual le accionas ciertas acciones a los usuarios; de los cuales al abrir cada uno su sesión les aparezca un menú (en un control menuStrip) con las acciones asignadas.

    Si estoy en lo correcto, para mi gusto yo trabajaría con List (para guardar las acciones del usuario) y con ToolStripMenuItem para mostrarlas en el menú…

    Esplicare un poco detallado: se haría una consulta a la BD para obtener las acciones del usuario (SELECT acción FROM NAME_TABLE WHERE usuario = ‘Pablito’) y dichos datos los guardaría en el List

    List<datos> lista = new List<datos>();  
    string strProvider = "Data Source=Servidor; Initial Catalog = Name_BD; User id = Usuario;  password = *****";
    SqlConnection sqlCon = new SqlConnection(strProvider);
    sqlCon.Open();
    String select = " SELECT accion FROM NAME_TABLE WHERE usuario = ‘Pablito’";
    SqlCommand cmd = new SqlCommand(select, sqlCon);
    SqlDataReader reader = cmd.ExecuteReader();
    while(reader.Read())
    {
    	lista.Add(new datos()
    	{
    		accion = Convert.ToString(reader["accion "])
    	});
    }

    Y posteriormente recorrería la lista para anexar las opciones al menú

    ToolStripMenuItem menuPadre = new ToolStripMenuItem();
    menuPadre.Text = "ACCIONES";
    ToolStripMenuItem menuHijo;
    for (int i = 0; i < lista.Count; i++)
    {
    	menuHijo = new ToolStripMenuItem();
    	menuHijo.Text = lista[i].ToString();
    	menuPadre.DropDownItems.Add(menuHijo);
    }
    menuStrip.Items.Add(menuPadre);
    De esta manera me evitaría estar ocultando y mostrando opciones del menú

    • Marcado como respuesta Gaspar Reyes lunes, 14 de diciembre de 2015 13:18
    viernes, 11 de diciembre de 2015 18:51

Todas las respuestas

  • Hola, podrías volverlo a explicar por favor, no se capta muy bien la idea. 
    miércoles, 9 de diciembre de 2015 14:59
  • Estoy una aplicación en c# que tiene una ventana de acceso y un menú de opciones.

    En una de las opciones del menú tengo una ventana para elegir las ventanas a las que tendrá acceso el usuario. Como se muestra en la imagen. Esto lo guardo en una tabla de sql server.

      

    Lo que quiero es que al momento de logearme con el usuario y la contraseña solo me muestre las opciones que están en true. 

    miércoles, 9 de diciembre de 2015 16:28
  • ha ok, sabes procedimientos almacenadosy sabes como usar los if?
    jueves, 10 de diciembre de 2015 19:44
  • Si no eh trabajado mucho con procedimientos pero pues si les entiendo y los if si los se manejar 
    jueves, 10 de diciembre de 2015 22:03
  • Saludos Gaspar.

    Veamos si comprendí la problemática: Tienes la ventana que muestras en la imagen (que contiene un control treeView), de la cual le accionas ciertas acciones a los usuarios; de los cuales al abrir cada uno su sesión les aparezca un menú (en un control menuStrip) con las acciones asignadas.

    Si estoy en lo correcto, para mi gusto yo trabajaría con List (para guardar las acciones del usuario) y con ToolStripMenuItem para mostrarlas en el menú…

    Esplicare un poco detallado: se haría una consulta a la BD para obtener las acciones del usuario (SELECT acción FROM NAME_TABLE WHERE usuario = ‘Pablito’) y dichos datos los guardaría en el List

    List<datos> lista = new List<datos>();  
    string strProvider = "Data Source=Servidor; Initial Catalog = Name_BD; User id = Usuario;  password = *****";
    SqlConnection sqlCon = new SqlConnection(strProvider);
    sqlCon.Open();
    String select = " SELECT accion FROM NAME_TABLE WHERE usuario = ‘Pablito’";
    SqlCommand cmd = new SqlCommand(select, sqlCon);
    SqlDataReader reader = cmd.ExecuteReader();
    while(reader.Read())
    {
    	lista.Add(new datos()
    	{
    		accion = Convert.ToString(reader["accion "])
    	});
    }

    Y posteriormente recorrería la lista para anexar las opciones al menú

    ToolStripMenuItem menuPadre = new ToolStripMenuItem();
    menuPadre.Text = "ACCIONES";
    ToolStripMenuItem menuHijo;
    for (int i = 0; i < lista.Count; i++)
    {
    	menuHijo = new ToolStripMenuItem();
    	menuHijo.Text = lista[i].ToString();
    	menuPadre.DropDownItems.Add(menuHijo);
    }
    menuStrip.Items.Add(menuPadre);
    De esta manera me evitaría estar ocultando y mostrando opciones del menú

    • Marcado como respuesta Gaspar Reyes lunes, 14 de diciembre de 2015 13:18
    viernes, 11 de diciembre de 2015 18:51