데이터값이 변할 때 마다(새로고침) 컬럼 길이가 바뀝니다.
리스트뷰 콘트롤과 커맨드 버튼 콘트롤 만 있으면 됩니다.
이것 가지고 응용하면 재미난 것을 만들 수 있습니다.
이것 가지고 응용하면 재미난 것을 만들 수 있습니다.
VB
Option Explicit
Private Declare Function SendMessage Lib "user32.dll" _
Alias "SendMessageA" (ByVal hWnd As Long, _
ByVal Msg As Long, ByVal wParam As Long, _
ByVal lParam As Long) As Long
Private Const LVM_FIRST = &H1000
Private Const LVM_SETCOLUMNWIDTH = (LVM_FIRST + 30)
Private Const LVSCW_AUTOSIZE = -1
Private Const LVSCW_AUTOSIZE_USEHEADER = -2
Private Sub Form_Load()
With ListView1
.ColumnHeaders.Add , , "First Header"
.ColumnHeaders.Add , , "Header #2"
.ColumnHeaders.Add , , "Yet Another Header"
.ColumnHeaders.Add , , "Our Final Header"
End With
End Sub
Private Sub cmdSize_Click()
Dim Column_to_size As Long
Dim Counter As Long
Counter = 0
For Column_to_size = Counter To ListView1.ColumnHeaders.Count - 2
SendMessage ListView1.hWnd, _
LVM_SETCOLUMNWIDTH, _
Column_to_size, _
LVSCW_AUTOSIZE_USEHEADER
Next
End Sub