Foros del Web » Programación para mayores de 30 ;) » .NET »

Menustrip ayuda

Estas en el tema de Menustrip ayuda en el foro de .NET en Foros del Web. QUE TAL HICE UN PROYECTO EN VISUAL BASIC 2008 Y TENGO UN PROBLEMA PARA DESHABILITAR ALGUNOS ITEMS DEL MENU, TENGO ESTA FUNCION JALA BIEN CON ...
  #1 (permalink)  
Antiguo 28/06/2010, 15:23
 
Fecha de Ingreso: octubre-2006
Mensajes: 88
Antigüedad: 17 años, 6 meses
Puntos: 1
Pregunta Menustrip ayuda

QUE TAL HICE UN PROYECTO EN VISUAL BASIC 2008 Y TENGO UN PROBLEMA PARA DESHABILITAR ALGUNOS ITEMS DEL MENU, TENGO ESTA FUNCION JALA BIEN CON LOS BOTONES PERO AHORA CON EL MENU NO FUNCIONA ME PUEDEN AYUDAR

Código vb:
Ver original
  1. Public Function EstablecerPermisos(ByVal nomventana As Control, ByVal ventana As String, ByVal permisos As ListView) As Boolean
  2.         Dim posx As Integer = 0
  3.         Dim encontrado As Boolean = False
  4.  
  5.         With permisos
  6.             While posx < .Items.Count And Not encontrado
  7.                 If .Items(posx).SubItems(1).Text = ventana And .Items(posx).Checked = True Then
  8.                     encontrado = True
  9.                 Else
  10.                     posx = posx + 1
  11.                 End If
  12.                 If encontrado Then
  13.                     While (posx) < .Items.Count
  14.                         If .Items(posx).SubItems(1).Text = ventana Then
  15.                             If .Items(posx).Checked = True Then
  16.                                 comp = .Items(posx).SubItems(4).Text
  17.  
  18.                                 nomventana.Controls(comp).Enabled = False
  19.  
  20.                                 ' frmPrincipal.button1.Enabled = False //ESTO SERIA LO MISMO QUE LA LINEA ANTERIOR
  21.                                ' frmPrincipal.mnuArchivoNuevo.Enabled = False //ESTO SERIA LO MISMO QUE LA LINEA ANTERIOR PERO AQUI ME DA ERROR
  22.  
  23.  
  24.  
  25.                             End If
  26.                             posx = posx + 1
  27.                         End If
  28.             End While
  29.                 End If
  30.             End While
  31.         End With
  32.         Return True
  33.     End Function
  #2 (permalink)  
Antiguo 29/06/2010, 08:23
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: Menustrip ayuda

Hola gctalico

Prueba con lo siguiente:

Código vb:
Ver original
  1. MenuStrip1.Items(0).Enabled = False
  2. MenuStrip1.Items(1).Enabled = False
  3. MenuStrip1.Items(2).Enabled = False
  4. .
  5. .
  6. .
  7. MenuStrip1.Items(n).Enabled = False

Ahora bien para deshabilitar elementos o submenus de un menú haces lo siguiente:


Código vb:
Ver original
  1. NombreMenuToolStripMenuItem.DropDownItems.Item(0).Enabled = False
  2. NombreMenuToolStripMenuItem.DropDownItems.Item(1).Enabled = False
  3. .
  4. .
  5. .
  6. NombreMenuToolStripMenuItem.DropDownItems.Item(n).Enabled = False


Solo fijate que índice tienen los elementos del menustrip que deseas deshabilitar.

Saludos!!!
  #3 (permalink)  
Antiguo 29/06/2010, 09:20
 
Fecha de Ingreso: octubre-2006
Mensajes: 88
Antigüedad: 17 años, 6 meses
Puntos: 1
Respuesta: Menustrip ayuda

Pero como poner eso en la funcion que hice si los nombres de los componentes los cargo desde una base de datos podrias explicarme


saludos
  #4 (permalink)  
Antiguo 29/06/2010, 09:38
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: Menustrip ayuda

Porque no tratas modificando esta instrucción por algo parecido a lo que te digo?

Código vb:
Ver original
  1. nomventana.Controls(comp).Enabled = False

Algo asi:

Código vb:
Ver original
  1. nomventana.Comp.Item(x).Enable = False

De que tipo es Comp?
  #5 (permalink)  
Antiguo 29/06/2010, 09:39
 
Fecha de Ingreso: octubre-2006
Mensajes: 88
Antigüedad: 17 años, 6 meses
Puntos: 1
Respuesta: Menustrip ayuda

Private comp As Object asi lo tengo
  #6 (permalink)  
Antiguo 29/06/2010, 09:46
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: Menustrip ayuda

Ok, prueba algo similar a lo que te comento y me dices como te va.
  #7 (permalink)  
Antiguo 29/06/2010, 10:05
 
Fecha de Ingreso: octubre-2006
Mensajes: 88
Antigüedad: 17 años, 6 meses
Puntos: 1
Respuesta: Menustrip ayuda

ok ya lo probe y me funciona solo esta parte que es la que deshabilita los items principales

Código vb:
Ver original
  1. nomventana.Controls(comp).Items(1).Enabled = False


pero esta parte que es la que haria lo de los subitems marca error

Código vb:
Ver original
  1. nomventana.Controls(comp).DropDownItems.Item(1).Enabled = False


que crees que pueda ser lo que falla

nomventana es de tipo control
comp es de tipo objeto



y el error que me manda es(Object variable or With block variable not set.)
  #8 (permalink)  
Antiguo 29/06/2010, 10:18
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: Menustrip ayuda

Ok mira solo ten cuidado con lo siguiente:

1. En la primera parte Comp es el nombre del menustrip y vas inhabilitando cada elemento del menú por ejemplo archivo, edicion, ayuda, etc de los menús comunes.

Código vb:
Ver original
  1. nomventana.Controls(comp).Items(1).Enabled = False

2. Por otra parte en los item de cada menú o submenús de cada menú estas poniendo el nombre del menustrip por lo cual no es correcto, trata poniendo el nombre del Item del menustrip que tiene los submenús por ejemplo:

Si tu menú contiene los menús de Archivo, Edicion, etc. el comp no seria el nombre del menustrip sino el nombre del Item que contiene los submenús:

Código vb:
Ver original
  1. nomventana.ArchivoMenuToolStrip.Item(x).Enable = False
  #9 (permalink)  
Antiguo 30/06/2010, 12:01
 
Fecha de Ingreso: octubre-2006
Mensajes: 88
Antigüedad: 17 años, 6 meses
Puntos: 1
Respuesta: Menustrip ayuda

1. YA LO REVISE Y ESTA ASI

Código vb:
Ver original
  1. nomventana.Controls(comp).Items(1).Enabled = False  '// para items pricipales del menustrip

nomventana = frmprincipal y comp = mnuprincipal y asi funciona bien


2. se supone que para los subitems seria con el nombre de el item pricipal entonces lo deje asi
Código vb:
Ver original
  1. nomventana.Controls(comp).DropDownItems.Item(0).Enabled = False

nomventa = frmprincipal y comp = frmprincipalArchivo

pero no me fuciona este segundo


si lo hago directo sin variables los 2 funcionan pero necesito asi


sin variables lo hago asi y funciona

Código vb:
Ver original
  1. mnuprincipal.Items(0).Enabled = False
  2. mnuOperaciones.DropDownItems.Item(1).Enabled = False



solo necesito resolver eso

saludos
  #10 (permalink)  
Antiguo 04/08/2010, 09:22
 
Fecha de Ingreso: septiembre-2007
Mensajes: 54
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Menustrip ayuda

esta es una solucion es hecho en chile

Private Sub MDIParent1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Call Pr_Recorrer_Menu(Me.MenuStrip)
End Sub
Sub Pr_Recorrer_Menu(ByVal oMenu As MenuStrip)
Try

For Each oOpcionMenu As ToolStripMenuItem In oMenu.Items
'' el oOpcionMenu contiene todo los submenu
'' entonces tengo me+ menustrip+(menu_primeralinea)+(submenudropdownitem s)
Dim menu As String = oOpcionMenu.Name.ToString

For i As Integer = 0 To oOpcionMenu.DropDownItems.Count - 1

Dim submenu As String = oOpcionMenu.DropDownItems.Item(i).Name.ToString
Dim valor As Boolean = False
'codigo con base de datos padre hijo etc + un boolean o bit en base

oOpcionMenu.DropDownItems.Item(submenu).ForeColor = Color.Cyan
oOpcionMenu.DropDownItems.Item(submenu).Enabled = valor
'Me.Mnu_Archivo.DropDownItems.Item(i).Enabled = False

Next
Next

Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub

'si tiene trabajo para mi ya que vuelvo a la cesantia

'[email protected]
'profesional microsoft it certificado...

'creen un mdi nuevo y generen menu al gusto del usuario despues reccorranlo , y solamente faltaria su ingenio

Última edición por zeroyevi; 04/08/2010 a las 10:20 Razón: ayuda

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:46.