2013-04-22 1 views
0

어떻게 내 listview의 열 범위를 현재 창 크기에 맞출 수 있습니까? 그래서 그것은 최대 윈도우 모드에서 스트레치 것인가?어떻게 열 크기를 창 크기에 맞출 수 있습니까?

+0

이렇게 [AutoResizeColumn] (http://msdn.microsoft.com/en-us/library/system.windows.forms.listview.autoresizecolumn.aspx)? – Brian

+0

이 방법은 좋아하지만 창 크기는 다음과 같습니다. –

+1

이 ASP.NET/Winforms/WPF입니까? – Brian

답변

1

요청 방법에 관계없이 ListView는 열 내용의 길이 또는 열 머리글 내용의 길이에 따라 자동 열 크기 조정의 두 가지 방법 만 지원합니다.

분명히 원하는 것이 아니기 때문에 직접 코드를 작성해야합니다. 이렇게하려면 양식의 ResizeEnd 이벤트에 처리기 메서드를 연결하십시오. 이 이벤트는 사용자가 또는 프로그래밍 방식으로 코드를 통해 양식의 크기를 조정할 때마다 발생합니다. 아마도 ListView 컨트롤에 Anchor 및/또는 Dock 속성을 사용하여 상위 폼과 함께 크기를 조정했기 때문에 모든 경우를 다루어야합니다.

해당 이벤트 처리기 메서드 내에서 각 열의 새 크기를 계산하고 그에 따라 ListView 컨트롤을 조정합니다. 이것은 열 크기 조정에 사용할 알고리즘을 결정하는 유일한 어려운 부분입니다.

이 같은 ListView에있는 경우 :

| Order # | Customer Name | Phone Number | Status | 
|---------|---------------|--------------|--------| 
|   |    |    |  | 

당신은 당신은 그들이 가장 가지고 있기 때문에 동일한 폭과 좁은 (모두 할 수있는 "주문 번호"와 "상태"열을할지 결정할 수를 표시 할 정보의 양). '고객 이름'은 표시 할 정보량이 가장 많기 때문에 가장 길어야하며 '전화 번호'는 중간에 표시 될 수 있습니다.

그렇다면 각 열의 크기는 ListView 컨트롤의 사용 가능한 총 너비에 비례합니다.이 너비는 ClientSize 속성을 쿼리하여 검색 할 수 있습니다. 예를 들어,

float totalWidth = myListView.ClientSize.Width; 

는이 방법 here의 정말 우아하고 재사용 가능한 데모를 찾을 수 있습니다.

관련 문제