Giufantasy Ya analizando mejor tu codigo creo que ya comprendi toda tu logica, por tanto me parece que debe quedar asi :
Código vb.net:
Ver originalDim dt As New DataTable
Dim da As New SqlDataAdapter
'Ejecutando procedimiento para codigos de barra.
Dim cmd As New SqlCommand
cmd.CommandType = Data.CommandType.StoredProcedure
cmd.CommandText = "SP_BUSCA_FORMULARIOS_X_MENU"
cmd.Connection = SQLcnn
cmd.Parameters.Clear()
cmd.Parameters.AddWithValue("@RUT", RutUsuario)
cmd.Parameters.AddWithValue("@SISTEMA", CodigoSistema)
cmd.Parameters.AddWithValue("@MENU", NombreCabecera)
cmd.ExecuteNonQuery()
da = New SqlDataAdapter(cmd)
da.Fill(dt)
Dim vlim As Short = CShort(dt.Rows.Count - 1)
Dim vposi As Short
For vposi = 0 To vlim
mnuSubOpcion = New ToolStripMenuItem()
mnuSubOpcion
.Text = Trim(dt
.Rows(vposi
).Item("DESCRI PCION").ToString())mnuSubOpcion
.Tag = Trim(dt
.Rows(vposi
).Item("DESCRIPCION").ToString() )mnuSubOpcion.Image = Imagen.Images(1)
mnuSubOpcion.TextAlign = ContentAlignment.TopCenter
NombreSubmenu
= Trim(dt
.Rows(vposi
).Item("MENU").ToString())mnuSubOpcion.Name = TNombreSubMenu
mnuSubOpcion.ForeColor = Color.Blue
'Añadir Opcion
menuOpcion.DropDownItems.Add(mnuSubOpcion)
AddHandler mnuSubOpcion.Click, AddressOf LevantaFormulario
Next
Código vb.net:
Ver originalDim Formulario As String
Dim wSTproyecto As String = System.Reflection.Assembly.GetExecutingAssembly.Ge tName.Name
abrirConexion()
conectaSQL()
Dim da As SqlDataAdapter
Dim dt4 As New DataTable
Dim cmd As New SqlCommand
cmd.CommandType = Data.CommandType.StoredProcedure
cmd.CommandText = "SP_CARGA_FORMULARIO"
cmd.Connection = SQLcnn
cmd.Parameters.Clear()
cmd.Parameters.AddWithValue("@MENU", Me.ActiveControl.Name.ToString)
cmd.Parameters.AddWithValue("@DESCRIPCION", Me.ActiveControl.Text)
cmd.ExecuteNonQuery()
da = New SqlDataAdapter(cmd)
da.Fill(dt4)
If dt4.Rows.Count > 0 Then
Formulario = dt4.Rows(0).Item(0)
Dim ensamblado As [Assembly] = [Assembly].GetExecutingAssembly()
Dim f As Form = ensamblado.CreateInstance(wSTproyecto + "." + Formulario, True)
f.ShowDialog()
End If
cerrarConexion()
Exit Sub
Sino te funciona el "Me.ActiveControl..." es muy raro... debe faltar algo..... xq yo lo uso normal sin ningun problema...