본문 바로가기
다물칸 주소복사
조회 수 3373 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form
구분 팁&트릭

데이터값이 변할 때 마다(리프레쉬 하며는) 컬럼 길이가 바뀝니다.

리스트뷰 콘트롤과 커맨드 버튼 콘트롤 만 있으면 됩니다. 
이것 가지고 응용하면 재미난 거 만들 수 있겠져.

 

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