Visual Basic.NET - Leer IndexOf en un ToolStripMenu

 
Vista:
sin imagen de perfil
Val: 28
Ha disminuido su posición en 3 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

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.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Leer IndexOf en un ToolStripMenu

Publicado por Harold Villena (411 intervenciones) el 01/08/2011 01:29:52
Hola:

Aqui te muestro un pequeño ejemplo de como obtener el identificador de tu categoría.

For Each Dt_Row As DataRow In ds.Tables("TBCategorias").Rows

Dim itemMenu As New ToolStripMenuItem

'El nombre del item será el identificador de tu categoria, tambien podrias almacenarlo en el tag

itemMenu.Name= Dt_Row.Item("IDCategoria")

itemMenu.text= Dt_Row.Item("Categoria").ToString

Me.TSMProdPorCategorias.DropDownItems.Add(itemMenu)

Next

' El resto de tu codigo....

Private Sub TSMProdPorCategorias_DropDownItemClicked(ByVal sender As Object, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs) Handles TSMProdPorCategorias.DropDownItemClicked

'Obtenemos el identificador ya que lo tenemos almacenado en el nombre
MsgBox("Categoria presionada:" & e.ClickedItem.Name)


End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar