Individuare la cella della GridView nella quale si è cliccato

Da Gambas-it.org - Wikipedia.
Versione del 7 lug 2015 alle 02:35 di Vuott (Discussione | contributi) (Creata pagina con 'Per individuare la cella di una ''GridView'' (così come anche di una ''TableView'') sulla quale si è cliccato con il puntatore del mouse, vi sono almeno due modalità. ===...')

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

Per individuare la cella di una GridView (così come anche di una TableView) sulla quale si è cliccato con il puntatore del mouse, vi sono almeno due modalità.


1a modalità

La prima modalità prevede l'individuazione ad incrocio del numero d'indice della colonna e quello della riga. Per fare ciò, si utilizzano rispettivamente le proprietà:

GridView1.Column As Integer

e

GridView1.Row As Integer

che verranno poste nella routine dell'evento _Click() della Classe GridView, sollevato nel caso in cui l'utente clicca all'interno di una cella.

Nel semplice esempio che segue, vengono raccolti non solo gli indici della colonna e della riga che definiscono la cella cliccata, ma anche il testo in essa contenuto:

Public Sub Form_Open()  
 
 With GridView1  
   .Columns.count = 3  
   .Rows.Count = 3  
 End With  
 
 GridView1[0, 0].Text = "zero e zero"
 GridView1[0, 1].Text = "zero e uno"
 GridView1[0, 2].Text = "zero e due"
 GridView1[1, 0].Text = "uno e zero"
 GridView1[1, 1].Text = "uno e uno"
 GridView1[1, 2].Text = "uno e due"
 GridView1[2, 0].Text = "due e zero" 
 GridView1[2, 1].Text = "due e uno" 
 GridView1[2, 2].Text = "due e due"  
 
End  
 
 
Public Sub GridView1_Click()  
  
 With GridView1
   Print "   Riga n. "; .Row
   Print "Colonna n. "; .Column

   Print "Testo raccolto: "; GridView1[.Row, .Column].Text  
   Print
 End With
 
End


2a modalità

Le seconda modalità prevede l'acquisizione degli indici della riga e della colonna puntati rispettivamente da una posizione verticale ed orizzontale definita dal cursore del mouse che ha scatenato l'evento clic.

Public Sub GridView_Click()
 
 Dim r, c As Integer
    
  r = GVw.RowAt(Mouse.Y)
  c = GVw.ColumnAt(Mouse.X)

  Print r;; c

End