Leer IndexOf en un ToolStripMenu
Publicado por Adolfo (55 intervenciones) el 27/07/2011 05:30:45
Tengo el siguiente codigo que carga una lista de categorias almacenadas en una tabla, y las muestra en un ToolStripMenu:
Private Sub TSMProdPorCategorias_DropDownOpening(ByVal sender As Object, ByVal e As System.EventArgs) Handles TSMProdPorCategorias.DropDownOpening
'****************************************************************************************************
'Processor que carga el menu de Categorias de acuerdo a la tabla TBCategorias de la base de datos BDInventario.
'****************************************************************************************************
TSMProdPorCategorias.DropDownItems.Clear()
Dim ds As New DataSet
ds.Clear()
Dim strSQL As String = "SELECT * FROM TBCategorias ORDER by Categoria"
Dim da As New OleDbDataAdapter(strSQL, m_cn)
da.Fill(ds, "TBCategorias")
For Each Dt_Row As DataRow In ds.Tables("TBCategorias").Rows
VarMenuOpcion = Dt_Row.Item("Categoria").ToString
TSMProdPorCategorias.DropDownItems.Add(VarMenuOpcion)
Next
m_cn.Close()
End Sub
Hasta aqui el codigo funciona perfecto, pero ahora necesito identificar el Indice de la categoria seleccionada del menu, lo cual no he podido hacer que funcone, he provado con el siguiente codigo:
Private Sub TSMProdPorCategorias_DropDownItemClicked(ByVal sender As Object, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs) Handles TSMProdPorCategorias.DropDownItemClicked
Dim i As Byte
i = 3
VarMenuOpcion = TSMProdPorCategorias.DropDownItems.Item(i).ToString
MsgBox(VarMenuOpcion)
'Hasta este punto el programa me muestra el nombre de la categoria numero 3 del menu, sinembargo yo necesito que en ves de un 3 (fijo) sea una variable, pues el menu tiene 22 opciones, y necesito que el programa caputar la categoria seleccionada del menu.
He tratado lo siguiente por algo estoy haciendo mal:
Dim item As ToolStripMenuItem = sender
MsgBox(TSMProdPorCategorias.DropDownItems.IndexOf(item))
End Sub
Aceptaria cualquier sugerencia al respecto, mis opciones se me agotan, he gastado mucho tiempo buscando la solucion.
Gracias.
Private Sub TSMProdPorCategorias_DropDownOpening(ByVal sender As Object, ByVal e As System.EventArgs) Handles TSMProdPorCategorias.DropDownOpening
'****************************************************************************************************
'Processor que carga el menu de Categorias de acuerdo a la tabla TBCategorias de la base de datos BDInventario.
'****************************************************************************************************
TSMProdPorCategorias.DropDownItems.Clear()
Dim ds As New DataSet
ds.Clear()
Dim strSQL As String = "SELECT * FROM TBCategorias ORDER by Categoria"
Dim da As New OleDbDataAdapter(strSQL, m_cn)
da.Fill(ds, "TBCategorias")
For Each Dt_Row As DataRow In ds.Tables("TBCategorias").Rows
VarMenuOpcion = Dt_Row.Item("Categoria").ToString
TSMProdPorCategorias.DropDownItems.Add(VarMenuOpcion)
Next
m_cn.Close()
End Sub
Hasta aqui el codigo funciona perfecto, pero ahora necesito identificar el Indice de la categoria seleccionada del menu, lo cual no he podido hacer que funcone, he provado con el siguiente codigo:
Private Sub TSMProdPorCategorias_DropDownItemClicked(ByVal sender As Object, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs) Handles TSMProdPorCategorias.DropDownItemClicked
Dim i As Byte
i = 3
VarMenuOpcion = TSMProdPorCategorias.DropDownItems.Item(i).ToString
MsgBox(VarMenuOpcion)
'Hasta este punto el programa me muestra el nombre de la categoria numero 3 del menu, sinembargo yo necesito que en ves de un 3 (fijo) sea una variable, pues el menu tiene 22 opciones, y necesito que el programa caputar la categoria seleccionada del menu.
He tratado lo siguiente por algo estoy haciendo mal:
Dim item As ToolStripMenuItem = sender
MsgBox(TSMProdPorCategorias.DropDownItems.IndexOf(item))
End Sub
Aceptaria cualquier sugerencia al respecto, mis opciones se me agotan, he gastado mucho tiempo buscando la solucion.
Gracias.
Valora esta pregunta


0