Winforms : 수직 스크롤 바가있을 때 C# ListView에 마지막 항목을 프로그래밍 방식으로 표시하려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/616491

문제

수직 스크롤 바가있을 때 C# ListView에 마지막 항목을 프로그래밍 방식으로 표시하려면 어떻게해야합니까? ListViews와 관련된 모든 방법을 연구했으며 아무것도 찾을 수 없습니다.

도움이 되었습니까?

해결책

실제로 목록보기를 스크롤하는 것은 쉽지 않습니다. 아이템이 보이도록 지시해야합니다.

var items = listView.Items;
var last = items[items.Count-1];
last.EnsureVisible();

다른 팁

this.listView1.Items[this.listView1.Items.Count - 1].EnsureVisible();  

ListViewItem.ensureVisible ()

Winforms :

ListView의 항목 모음에서 마지막 항목에서 선택한 값을 true로 설정 했습니까?

이 작업을 수행하면 마지막 항목에 중점을 둘 것이라고 생각합니다. 그러나 나는 나 자신을 시도하지 않았다.

편집하다:이것은 트릭을 수행 할 것입니다.

Me.ListView1.Items(Me.ListView1.Items.Count - 1).EnsureVisible()

WPF 또는 Winforms?

WPF에서는 얻을 수 있습니다 ListViewItem 그리고 전화 BringIntoView 그 위에.

이것은 Windows 함수를 사용하여 수평을 숨기고 힘을 항상 표시 할 수있는 링크입니다.

http://social.msdn.microsoft.com/forums/en-us/winforms/thread/4aa4dade-53a2-4e2e-a8b4-b4980da1f39c/

다음 해킹은 마지막 ListView 항목을 선택하고 표시합니다.
이것이 왜 작동하는지 확실하지 않지만 작동합니다.

listview.SelectedIndices.Clear();  
listview.FocusedItem = listview.Items[listview.Items.Count - 1];  
listview.FocusedItem.Selected = true;  
listview.BeginInvoke((MethodInvoker)delegate { 
    listview.FocusedItem.EnsureVisible(); 
});

또한 가로 스크롤 막대가 표시되기를 원하지 않으면 ListView의에 맞도록 ListView 열 크기를 조정해야합니다. ClientArea 전화하기 전에 너비 BeginInvoke.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top