|
|
|
|
|
Dicas
|
|
Visual Basic (Grid/FlexGrid)
|
|
|
Título da Dica: Autosize em um ListView
|
|
|
|
Postada em 13/1/2005 por kerplunk
Para que um listview se auto ajuste em tamanho de acordo com o conteúdo, tem duas maneiras, a primeira é pressionar as teclas CTRL + Porém isto requer que o usuário faça alguma coisa o que é desaconselhável, daí o auto ajuste automático se faz necessário. Pra isso poderíamos muito bem criar um loop que ache a maior célula, mas isto tornaria o processo lento se o listview fosse muito grande. Então o uso da API é o mais aconselhável. A API é assim:
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Declare Function LockWindowUpdate Lib "user32" (ByVal hwndLock As Long) As Long
Public Const LVM_Min As Long = &H1000 Public Const LVM_SETCOLUMNWIDTH As Long = (LVM_Min + 30) Public Const LVSCW_AUTOSIZE As Long = -1 Public Const LVSCW_AUTOSIZE_USEHEADER As Long = -2
E para fazê-la funcionar, ou seja, auto ajustar o listview, o comando fica mais ou menos assim(digo mais ou menos porque você pode adaptá-lo às suas necessidades):
SendMessage lvwItens.hWnd, LVM_SETCOLUMNWIDTH, 1, LVSCW_AUTOSIZE_USEHEADER e era isso! Até a próxima!
|
|
|
|
|