Differenze tra le versioni di "Evitare che appaia il popmenu quando si clicca al di fuori di un elemento di una ListView"

Da Gambas-it.org - Wikipedia.
 
Riga 1: Riga 1:
Per far sì che non appaia il menu ''popup'', quando si clicca con il tasto destro del mouse al di fuori di un elemento della lista di una ''ListView'', si può adottare un codice quello appresso. <SUP>&#091;[[#Note|Note 1]]&#093;</sup>
+
Per far sì che non appaia il menu ''popup'', quando si clicca con il tasto destro del mouse al di fuori di un elemento della lista di una ''ListView'', si può adottare un codice quello appresso.
  
 
Va precisato che il seguente codice prevede, qualora invece si clicchi con il tasto destro del mouse su un elemento della lista della ''ListView'', che il menu ''popup'' venga creato via codice.
 
Va precisato che il seguente codice prevede, qualora invece si clicchi con il tasto destro del mouse su un elemento della lista della ''ListView'', che il menu ''popup'' venga creato via codice.
  '''Public''' Sub Form_Open()
+
  Public Sub Form_Open()
 
    
 
    
 
   With ListView1
 
   With ListView1
Riga 10: Riga 10:
 
   End With
 
   End With
 
    
 
    
  '''End'''
+
  End
 
   
 
   
 
   
 
   
  '''Public''' Sub ListView1_MouseUp()
+
  Public Sub ListView1_MouseUp()
 
    
 
    
 
   Dim menu1, submenu1, submenu2 As Menu
 
   Dim menu1, submenu1, submenu2 As Menu
Riga 47: Riga 47:
 
   Endif
 
   Endif
 
    
 
    
  '''End'''
+
  End
 
   
 
   
  '''Public''' Sub Action_Activate(azione As String) As Boolean
+
   
 +
Public Sub Action_Activate(azione As String) As Boolean
 
    
 
    
 
  <FONT Color=gray>' ''Mostra in console semplicemente il testo del sotto-Menu cliccato:''</font>
 
  <FONT Color=gray>' ''Mostra in console semplicemente il testo del sotto-Menu cliccato:''</font>
 
   Print azione
 
   Print azione
 
    
 
    
  '''End'''
+
  End
  
  
Qualora invece il menu ''popup'' sia stato già creato mediante l'Editor Menu dell'IDE di Gambas <SUP>&#091;[[#Note|Note 2]]&#093;</sup>
+
Qualora invece il menu ''popup'' sia stato già creato mediante l'Editor Menu dell'IDE di Gambas <SUP>&#091;[[#Note|note 1]]&#093;</sup>, si potrà adottare il seguente codice:
, si potrà adottare il seguente codice:
+
  Public Sub Form_Open()
  '''Public''' Sub Form_Open()
 
 
    
 
    
 
   With ListView1
 
   With ListView1
Riga 67: Riga 67:
 
   End With
 
   End With
 
    
 
    
  '''End'''
+
  End
 
   
 
   
  '''Public''' Sub ListView1_MouseDown()
+
   
 +
Public Sub ListView1_MouseDown()
 
    
 
    
 
   ListView1.PopupMenu = Null
 
   ListView1.PopupMenu = Null
Riga 75: Riga 76:
 
   ListView1.PopupMenu = "mnuPopup"
 
   ListView1.PopupMenu = "mnuPopup"
 
    
 
    
  '''End'''
+
  End
 
   
 
   
  '''Public''' Sub Action_Activate(sKey As String) As Boolean
+
   
 +
Public Sub Action_Activate(sKey As String) As Boolean
 
    
 
    
 
   Select Case sKey
 
   Select Case sKey
Riga 88: Riga 90:
 
   End Select
 
   End Select
 
    
 
    
  '''End'''
+
  End
 
   
 
   
  '''Private''' Sub PopupTaglia()
+
   
 +
Private Sub PopupTaglia()
 
   
 
   
 
   Clipboard.Current = 0
 
   Clipboard.Current = 0
Riga 98: Riga 101:
 
   ListView1.Current.Text = Null
 
   ListView1.Current.Text = Null
 
    
 
    
  '''End'''
+
  End
 
   
 
   
 
   
 
   
  '''Private''' Sub PopupCopia()
+
  Private Sub PopupCopia()
 
    
 
    
 
   Clipboard.Current = 0
 
   Clipboard.Current = 0
Riga 107: Riga 110:
 
   If ListView1.Current.Text Then Clipboard.Copy(ListView1.Current.Text)
 
   If ListView1.Current.Text Then Clipboard.Copy(ListView1.Current.Text)
 
    
 
    
  '''End'''
+
  End
 
   
 
   
 
   
 
   
  '''Private''' Sub PopupIncolla()
+
  Private Sub PopupIncolla()
 
    
 
    
 
   Clipboard.Current = 0
 
   Clipboard.Current = 0
Riga 116: Riga 119:
 
   ListView1.Current.Text = Clipboard.Paste()
 
   ListView1.Current.Text = Clipboard.Paste()
 
    
 
    
  '''End'''
+
  End
  
  
  
 
=Note=
 
=Note=
[1] Vedi anche: [[Creare_Menu_a_finestra|Creare Menu a finestra]]
+
[1] Vedi questa pagina della Wiki: [http://www.gambas-it.org/wiki/index.php?title=Creare_Menu_popup_utilizzando_l%E2%80%99editor_di_menu Creare Menu popup utilizzando l’editor di menu]
 
 
[2] Vedi questa pagina della Wiki: [http://www.gambas-it.org/wiki/index.php?title=Creare_Menu_popup_utilizzando_l%E2%80%99editor_di_menu Creare Menu popup utilizzando l’editor di menu]
 

Versione attuale delle 16:58, 8 giu 2024

Per far sì che non appaia il menu popup, quando si clicca con il tasto destro del mouse al di fuori di un elemento della lista di una ListView, si può adottare un codice quello appresso.

Va precisato che il seguente codice prevede, qualora invece si clicchi con il tasto destro del mouse su un elemento della lista della ListView, che il menu popup venga creato via codice.

Public Sub Form_Open()
 
 With ListView1
   .Add("chiave_A", "aaaaa")
   .Add("chiave_B", "bbbbb")
   .Add("chiave_C", "ccccc")
 End With
  
End


Public Sub ListView1_MouseUp()
 
 Dim menu1, submenu1, submenu2 As Menu
 Dim j, k, b As Byte
  
' Se è stato cliccato all'interno dell'oggetto "ListView" con il tasto destro del mouse...
 If Mouse.Right Then
' ...allora verifica se alle coordinate ove si è cliccato esiste un item valido dell'oggetto "ListView":
   If ListView1.FindAt(Mouse.X, Mouse.Y) Then Return
' Crea innanzitutto il Menu principale:
     menu1 = New Menu(Me)
      
' Poi crea quattro sotto-Menu:
     For j = 1 To 4
       submenu1 = New Menu(menu1)
' Mostra il testo per ciascuno dei quattro sotto-Menu:
       submenu1.Text = "submenu1_" & CStr(j)
        
' Poi crea tre sotto-Menu per ciascun precedente sotto-Menu:
       For k = 1 To 3
         submenu2 = New Menu(submenu1)
         b += 1
' Mostra il testo per ciascuno dei tre sotto-Menu:
         submenu2.Text = "submenu2_" & CStr(b)
' Assegna all'azione, quando si cliccherà su uno dei secondi sotto-Menu, il testo del secondo sotto-Menu medesimo:
         submenu2.Action = submenu2.Text
       Next
     Next
      
' Mostra quindi le finestre di ciascun Menu:
     menu1.Popup
  
 Endif
  
End


Public Sub Action_Activate(azione As String) As Boolean
 
' Mostra in console semplicemente il testo del sotto-Menu cliccato:
 Print azione
  
End


Qualora invece il menu popup sia stato già creato mediante l'Editor Menu dell'IDE di Gambas [note 1], si potrà adottare il seguente codice:

Public Sub Form_Open()
 
 With ListView1
   .Add("chiave0", "aaaaa")
   .Add("chiave1", "bbbbb")
   .Add("chiave2", "ccccc")
 End With
 
End


Public Sub ListView1_MouseDown()
 
 ListView1.PopupMenu = Null
 If ListView1.FindAt(Mouse.X, Mouse.Y) Then Return
 ListView1.PopupMenu = "mnuPopup"
  
End


Public Sub Action_Activate(sKey As String) As Boolean
 
 Select Case sKey
   Case "popup-taglia"
     PopupTaglia()
   Case "popup-copia"
     PopupCopia()
   Case "popup-incolla"
     PopupIncolla()
 End Select
 
End


Private Sub PopupTaglia()

 Clipboard.Current = 0
 
 Clipboard.Copy(ListView1.Current.Text)
 
 ListView1.Current.Text = Null
  
End


Private Sub PopupCopia()
 
 Clipboard.Current = 0
 
 If ListView1.Current.Text Then Clipboard.Copy(ListView1.Current.Text)
  
End


Private Sub PopupIncolla()
 
 Clipboard.Current = 0
 
 ListView1.Current.Text = Clipboard.Paste()
  
End


Note

[1] Vedi questa pagina della Wiki: Creare Menu popup utilizzando l’editor di menu