Colonne della list view

martedì 15 giugno 2004 - 14.09

AntCiar Profilo | Expert

Ho creato una listview con 16 colonne e ovviamente tutte sullo schermo non ci vanno. Ho implementato anche una sub che ricerca all'interno di ogni subitem un determinato testo. Sono riuscito a cambiare il colore di sfondo del subitem in questione ma non riesco a portare il focus su questo subitem e pre fare ciò devo spostare la srollbar orizzontale. Come posso fare?
Grazie

Brainkiller Profilo | Guru

Ciao,
allora ho fatto delle prove, un percorso un po' difficile ma ora funziona.
Non so se c'è un modo per farlo in .NET dopo aver guardato un po' sono passato all'interoperabilità richiamando funzioni Win32API per forzare e simulare il click di spostamento sulla scrollbar.

Sono arrivato a questo risultato.
Dopo la definizione della tua classe Form, Public class Form1, Inherits, ecc. incolla queste definizioni:

Declare Auto Function SendMessage Lib "user32" (ByVal hwnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer

Const WM_VSCROLL = 277
Const WM_HSCROLL = 276
Const SB_LINEDOWN = 1
Const SB_LINEUP = 0
Const SB_PAGEDOWN = 3
Const SB_PAGEUP = 2

Poi crea la tua listview e riempila come fai di solito.
Crea un Button sulla Form e copia questo codice:

SendMessage(ListView1.Handle, WM_HSCROLL, SB_LINEDOWN, 0)

Lancia l'applicazione. Ora se premi il pulsante vedrai che la Scrollbar si sposterà in orizzontale mostrandoti le altre colonne.

Se ti funziona sei a cavallo. Basta calcolare in qualche colonna è l'elemnto che vuoi visualizzare, vedere la dimensione delle colonne, e richiamare la funzione SendMessage tante volte quante sono le volte necessarie per visualizzare la tua colonna.

Un buon trick.

fammi sapere.
ciao
david
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5