Menu

Aiuto su poup menu

Help
2006-10-25
2013-04-23
  • Nobody/Anonymous

    Ciao Davide,
    complimenti per il bellissimo lavoro. Guardando i tuoi esempi ho visto come creare un context menu per una o piu' celle ma come posso fare a vedere quale item del menu e' stato scelto e comportarmi di conseguenza?

    grazie

     
    • Davide Icardi

      Davide Icardi - 2006-10-25

      Ciao,

      Puoi utilizzare la normale gestione degli eventi del menu di .NET.

      Ogni menu che crei ha un evento Click (o MenuClick) a cui puoi sottoscriverti. Quando l'utente selezionerà il menu verrà richiamata la tua funzione.

      Davide

       
      • Nobody/Anonymous

        Grazie Mille,
        poiche' mi serviva sapere anche la cella che aveva lanciato il popup, nella classe del menu ho dichiarato un membro di tipo SourceGrid.CellContext; sull'evento di popUp del menu questo membro memorizza la cella "lanciante"  e sull'evento ItemClicked del menu
        lancio un evento custom "MenuItemClicked" a cui poi risponde il mio form e sembra fuzionare benissimo.
        Grazie ancora,
        P.S:
        Qui sotto metto il codice della classe MenuPopUp magari puo' servire a qualcuno con poca esperienza di programmazione come me

            Public Class MyPopUpMenu
                Inherits Cells.Controllers.ControllerBase
                Private menu As ContextMenuStrip = New ContextMenuStrip
                Event MenuItemClicked(ByVal sender As SourceGrid.CellContext, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs)
                Private sender_cell As SourceGrid.CellContext

                Public Overrides Sub OnMouseUp(ByVal sender As SourceGrid.CellContext, ByVal e As System.Windows.Forms.MouseEventArgs)
                    MyBase.OnMouseUp(sender, e)
                    sender_cell = sender
                    If e.Button = Windows.Forms.MouseButtons.Right Then
                        menu.Show(sender.Grid, New Point(e.X, e.Y))
                    End If

                End Sub

                Private Sub MyMenuClick(ByVal sender As Object, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs)
                    ' MessageBox.Show(e.ClickedItem.Text, "pio", MessageBoxButtons.OK)
                    RaiseEvent MenuItemClicked(sender_cell, e)
                    sender_cell = Nothing
                End Sub

                Public Sub New()
                    menu.Items.Add("Manage Rows...")
                    menu.Items.Add("Move Row To Top")
                    menu.Items.Add("Move Row To Bottom")
                    AddHandler menu.ItemClicked, AddressOf MyMenuClick
                    sender_cell = Nothing

                End Sub
            End Class

         

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.