프로그래밍 방식으로 ListView에서 항목을 선택하는 방법은 무엇입니까?
프로그래밍 방식으로 ListView에서 첫 번째 항목을 선택하려고하는데 선택되지 않은 것 같습니다. 다음 코드를 사용하고 있습니다.
if (listView1.Items.Count > 0)
listView1.Items[0].Selected = true;
사실 전에이 문제가 있었지만 어떻게 해결했는지 기억이 나지 않습니다!
대부분의 경우 항목 이 선택되고 있지만 다른 컨트롤에 포커스가 있기 때문에 알 수 없습니다. 응용 프로그램의 디자인에 따라이 문제를 해결할 수있는 몇 가지 방법이 있습니다.
간단한 해결책은
ListView
양식이 표시 될 때마다 초점을 첫 번째 로 설정하는 것 입니다. 사용자는 일반적으로 컨트롤을 클릭하여 컨트롤에 포커스를 설정합니다. 그러나 프로그래밍 방식으로 포커스를받는 컨트롤을 지정할 수도 있습니다. 이를 수행하는 한 가지 방법은 컨트롤의 탭 인덱스를 0으로 설정하는 것입니다 (가장 낮은 값은 초기 포커스를 가질 컨트롤을 나타냄). 두 번째 가능성은 양식의Load
이벤트에서 또는Selected
속성 을 설정 한 직후 에 다음 코드 줄을 사용하는 것입니다 .myListView.Select();
이 솔루션의 문제점은 사용자가 양식의 다른 컨트롤 (예 : 텍스트 상자 또는 단추)에 포커스를 설정할 때 선택한 항목이 더 이상 강조 표시되지 않는다는 것입니다.
이 문제를 해결하려면, 당신은 설정해야합니다
HideSelection
재산 의ListView
False로 제어합니다. 그러면 컨트롤이 포커스를 잃어도 선택한 항목 이 강조 표시 됩니다.컨트롤 에 포커스 가 있으면 선택한 항목의 배경이 시스템 강조 색상으로 칠해집니다. 컨트롤 에 포커스 가 없으면 선택한 항목의 배경이 회색 (또는 비활성화) 텍스트에 사용되는 시스템 색상으로 칠해집니다.
디자인 타임에 또는 코드를 통해이 속성을 설정할 수 있습니다.
myListView.HideSelection = false;
if (listView1.Items.Count > 0)
{
listView1.Items[0].Selected = true;
listView1.Select();
}
컨트롤에 포커스가 없으면 (또는 HideSelection
속성을 false로 설정) 목록 항목이 선택된 상태로 표시되지 않습니다.
나는 문제와 해결책이 코디 그레이로 설명되었다고 생각합니다! 추가 메모가 있습니다.
지정된 목록보기 항목 (및 컨트롤!)의 초점을 확인하십시오. 다음 코드 줄을 사용하여 포커스와 선택을 설정할 수 있습니다.
this.listView1.Items[1].Selected = true;
this.listView1.Items[1].Focused = true;
그러나 집중된 통제는 조건이었습니다!
int i=99;//is what row you want to select and focus
listViewRamos.FocusedItem = listViewRamos.Items[0];
listViewRamos.Items[i].Selected = true;
listViewRamos.Select();
listViewRamos.EnsureVisible(i);//This is the trick
나는 이것이 오래된 질문이라는 것을 알고 있지만 이것이 결정적인 대답이라고 생각합니다.
listViewRamos.Items[i].Focused = true;
listViewRamos.Items[i].Selected = true;
listViewRemos.Items[i].EnsureVisible();
컨트롤에 포커스가 없지만 포커스를 컨트롤에 강제로 지정하려는 경우 다음 줄을 추가 할 수 있습니다.
listViewRamos.Select();
Microsoft SelectItem()
가이 모든 것을 수행 하는 방법을 추가하지 않은 이유 는 저를 넘어선 것입니다.
if (listView1.Items.Count > 0)
{
listView1.FocusedItem = listView1.Items[0];
listView1.Items[0].Selected = true;
listView1.Select();
}
ListViewItem.IsSelected = true;
ListViewItem.Focus();
참고 URL : https://stackoverflow.com/questions/5791235/how-to-select-an-item-in-a-listview-programmatically
'Program Tip' 카테고리의 다른 글
프로그래밍 방식으로 현재 페이지 가져 오기 (0) | 2020.11.30 |
---|---|
HTML 캔버스 전체 화면 (0) | 2020.11.30 |
파이썬의 deques는 어떻게 구현되며 언제 목록보다 더 나쁩니 까? (0) | 2020.11.30 |
`std :: ios_base :: Init :: Init () '에 대한 정의되지 않은 참조 (0) | 2020.11.30 |
UIPickerView의 기본값을 설정하는 방법 (0) | 2020.11.30 |