Winforms : 수직 스크롤 바가있을 때 C# ListView에 마지막 항목을 프로그래밍 방식으로 표시하려면 어떻게해야합니까?
문제
수직 스크롤 바가있을 때 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
.
제휴하지 않습니다 StackOverflow