Vorrei presentare un helptag diverso a seconda dell’intestazione di una listbox.
Quello che ho fatto funziona perfettamente ma il mio obiettivo sarebbe quello di visualizzare l’help solo col posizionamento del mouse sull’header.
Ho provato ad inserire il -1 come numero di riga per identificare l’header, ma la cosa non funziona e l’help non appare affatto.
Mi potete aiutare? Grazie!
Forse meglio se vi posto il codice…
Dim xValue As Integer
xValue = System.MouseX - Me.Left - Self.Left
Dim yValue As Integer
yValue = System.MouseY - Me.Top - Self.Top
Dim row, column As Integer
row = Me.RowFromXY(xValue, yValue)
column=Me.ColumnFromXY(xValue, yValue)
If row = -1 Then //se qui metto "0" funziona sulla prima riga
Select Case column
Case 1
Me.HelpTag="colonna1"
Case 2
Me.HelpTag="colonna2"
Case 3
Me.HelpTag="colonna3"
Case 4
Me.HelpTag="colonna4"
Case 5
Me.HelpTag="colonna5"
Case 6
Me.HelpTag="colonna6"
End Select
Else
Me.HelpTag=""
End If
Nel mouse move della listbox: (X, Y)
dim column as integer=-1 //Nessuna colonna identificata
if y<=Me.HeaderHeight then
column=Me.ColumnFromXY(x, Me.HeaderHeight+1) //se ci sono righe puoi identificare la colonna dalla prima riga
If column=-1 Then //Non ci sono righe evidentemente
Dim n As Integer=Me.ColumnCount-1 //Colonne da esaminare
Dim xx As Integer=-Me.ScrollPositionX //Se hai una scroll orizzontale ne devi tener conto
For i As Integer=0 To n //Scorri per tutte le colonne
If x>xx Then //Se la tua posizione oltre il limite la colonna candidata
column =i
End If
xx=xx+w(Me.Column(i).WidthActual) //aggiorni il riferimento
Next
End If
End If
//Ora utilizza la tua colonna se -1 non devi mostrare nulla
Grazie Antonio! Come sempre sei un punto di riferimento assoluto!