Crear el menu desde una tabla en VB.NET

romalch
24 de Abril del 2006
Que tal com estan, soy programador de VBP 9.0, estoy acostumbrado a crear mis aplicaciones totalmente parametrizadas. Actualmente estoy creando una aplicacion en VB.NET, quiero armar el el menu y sus opciones desde una el contenido de una tabla, he podido hacerlo pero todas las opciones me salen en el menu principal, cuando varias deverian salir bajo la opcion del menu principal que corresponde. En VFP uso "&" para llamar como variable u objeto el contenido de una variable, ejemplo:

Xobjeto = ‘label1’
Xcadena = ‘thisform.’+xobjeto+’.caption’
&xcadena = ‘Probando’

en VB.NET lo estoy haciendo asi:

Private Sub Escritorio_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.IsMdiContainer = True
Dim mimenu As New MenuStrip() 'Creo el objeto tipo MenuStrip
abrir_sql("select a.codigo,a.nombre from modulos as a, accesos as b where b.codusua = '" & Clave.xcodusuario & "' and a.codmodu = b.codmodu order by codigo") 'Abro la tabla que contiene las opciones del menu
Dim op As Integer = 1 'Creo un contador para llevar el numero de opciones
Dim opca As New ToolStripMenuItem() 'Creo un objeto de tipo ToolStripMenuItem donde almacenare
'la opcion del menu principal
Do While Clave.xdar.Read() 'Inicio el ciclo de lectura de la tabla con las opciones
Dim opc As String = "opc" + LTrim(Str(op)) 'creo un objeto tipo string para crear el nombre de la
'opcion que sera la cadera OPC mas el contador es decir
'OPC1, OPC2, OPC3, ...
Dim opcion As New ToolStripMenuItem(opc) 'creo el objeto de tipo ToolStripMenuITEM con el nombre del
'contenido OP
opcion.Name = opc 'le doy el mismo nombre al objeto (creara conflicto?)
opcion.Text = RTrim(Clave.xdar("codigo")) & " _
" & RTrim(Clave.xdar("nombre")) 'Asigno el texto que desplegara en el menu cada opcion
If Len(RTrim(Clave.xdar("codigo"))) = 2 Then 'reviso el largo del codigo para saber si es una opcion
'del menu principal o una opcion dentro de otra opcion
opca.Name = opc 'si es una opcion de menu principal le doy el nombre a
'al objeto OPCA para guardarlo como opcion principal
Else
opca.DropDownItems.Add(opcion) 'si es opcion dentro de otra opcion la agrego dentro de ella
'esto es lo que no hace, las pone todas en el menu
'principal
End If
MiMenu.MdiWindowListItem = opcion
MiMenu.Items.Add(opcion)
op = op + 1
Loop
MiMenu.Dock = Dockstyle.Top
End Sub

Bueno si alguien me puede decir que debo hacer para que me funcione y si existe en VB.NET la funcion o comando para hacer la macrosustitucion que hace el "&" wn VFP

Gracias por su colaboracion

Saludos desde Guatemala

Mauricio Aldana
[email protected]