none
¿Como puedo obtener el índice del elemento actual de un ContextMenuStrip? RRS feed

  • Pregunta

  • Suponiendo que tengo el siguiente menú:

    Private Menu As ContextMenuStrip
    Menu.Items.Add(New ToolStripMenuItem With {.Name = "OpcionA", .Text = "Sub opción A")
    Menu.Items.Add(New ToolStripMenuItem With {.Name = "OpcionB", .Text = "Sub opción B")
    Menu.Items.Add(New ToolStripMenuItem With {.Name = "OpcionC", .Text = "Sub opción C")
    

    Y suponiendo que el cursor está sobre el elemento dos, cómo puedo obtener el índice correspondiente a dicho elemento?

    martes, 22 de septiembre de 2020 2:09

Respuestas

  • Hola James2016-2 mira un ejemplo de mas o menos como lo puedes hacer la verdad lo hice tomando tu ejemplo de codigo ya que no tengo el visual studio a mano pero seria mas o menos a si

        Private Menu1 As New ContextMenuStrip
    
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Menu1.Items.Add(New ToolStripMenuItem With {.Name = "OpcionA", .Text = "Sub opción A"})
            Menu1.Items.Add(New ToolStripMenuItem With {.Name = "OpcionB", .Text = "Sub opción B"})
            Menu1.Items.Add(New ToolStripMenuItem With {.Name = "OpcionC", .Text = "Sub opción C"})
        End Sub
    
        Private Sub OpcionB_MouseEnter(sender As Object, e As EventArgs) Handles OpcionB.MouseEnter
            TextBox1.Text = Menu1.Items.IndexOfKey(Menu1.Items.Item("OpcionB").Name)
        End Sub
    espero que le sea de ayuda o al menos te de una idea




    • Editado DANTE-3D miércoles, 23 de septiembre de 2020 23:47
    • Marcado como respuesta James2016-2 miércoles, 23 de septiembre de 2020 23:54
    miércoles, 23 de septiembre de 2020 23:43

Todas las respuestas

  • Hola James, 

      

    Gracias por levantar tu consulta en los foros de MSDN. Vamos a darle seguimiento al caso.  

    Cualquier duda referente a productos Microsoft, puedes consultarnos. Es un gusto informarte. 

    Gracias por usar los foros de MSDN.   

    Eric Ruiz

     ____________________________ 

      

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.  

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.   

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft. 

    martes, 22 de septiembre de 2020 12:32
    Moderador
  • Hola James2016-2 mira un ejemplo de mas o menos como lo puedes hacer la verdad lo hice tomando tu ejemplo de codigo ya que no tengo el visual studio a mano pero seria mas o menos a si

        Private Menu1 As New ContextMenuStrip
    
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Menu1.Items.Add(New ToolStripMenuItem With {.Name = "OpcionA", .Text = "Sub opción A"})
            Menu1.Items.Add(New ToolStripMenuItem With {.Name = "OpcionB", .Text = "Sub opción B"})
            Menu1.Items.Add(New ToolStripMenuItem With {.Name = "OpcionC", .Text = "Sub opción C"})
        End Sub
    
        Private Sub OpcionB_MouseEnter(sender As Object, e As EventArgs) Handles OpcionB.MouseEnter
            TextBox1.Text = Menu1.Items.IndexOfKey(Menu1.Items.Item("OpcionB").Name)
        End Sub
    espero que le sea de ayuda o al menos te de una idea




    • Editado DANTE-3D miércoles, 23 de septiembre de 2020 23:47
    • Marcado como respuesta James2016-2 miércoles, 23 de septiembre de 2020 23:54
    miércoles, 23 de septiembre de 2020 23:43
  • Hola James2016-2 mira un ejemplo de mas o menos como lo puedes hacer la verdad lo hice tomando tu ejemplo de codigo ya que no tengo el visual studio a mano pero seria mas o menos a si

        Private Menu1 As New ContextMenuStrip
    
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Menu1.Items.Add(New ToolStripMenuItem With {.Name = "OpcionA", .Text = "Sub opción A"})
            Menu1.Items.Add(New ToolStripMenuItem With {.Name = "OpcionB", .Text = "Sub opción B"})
            Menu1.Items.Add(New ToolStripMenuItem With {.Name = "OpcionC", .Text = "Sub opción C"})
        End Sub
    
        Private Sub OpcionB_MouseEnter(sender As Object, e As EventArgs) Handles OpcionB.MouseEnter
            TextBox1.Text = Menu1.Items.IndexOfKey(Menu1.Items.Item("OpcionB").Name)
        End Sub
    espero que le sea de ayuda o al menos te de una idea




    Hola, gracias por responder, sí es de mucha ayuda, la idea es buena, ¿podría ser también con MouseMove, no? aplicado a cada sub opción.
    • Editado James2016-2 miércoles, 23 de septiembre de 2020 23:54
    miércoles, 23 de septiembre de 2020 23:54
  • el problema del evento MouseMove es que este se ejecuta cada ves que muevas el mouse
    jueves, 24 de septiembre de 2020 0:06
  • el problema del evento MouseMove es que este se ejecuta cada ves que muevas el mouse
    Ah, ok, cierto, basta cada vez que entre al control.
    jueves, 24 de septiembre de 2020 2:38