2010-08-03 6 views
1

디렉터리의 파일 이름을 포함하는 .NET Winforms에 ListView 컨트롤이 있습니다. 컨트롤을 표시 할 때 첫째, 나는 그 프로그램 thusly 히 목록의 첫 번째 항목을 선택, 목록보기를 채우는 :목록보기에서 선택된 항목 표시

if (lvwFiles.Items.Count > 0) 
    { 
     ListViewItem firstItem = lvwFiles.Items[0]; 
     firstItem.Selected = true; 
    } 

이 목록의 첫 번째 항목을 시각적으로 강조되어야한다는 것을 제외하고는 잘 작동 (역 강조?)를 사용하여 선택한 항목임을 사용자에게 알리고 사용자가 항목 중 하나를 클릭하면 발생합니다.

그것은 바보 같은 질문처럼 보이지만 나는 Stackoverflow와 elsehwere를 둘러 보았고 분명한 대답을 보지 못했습니다. 재산 또는 이와 유사한 것을 설정하여이를 가능하게하는 쉬운 방법이 있습니까?

답변

3

변경 false로 HideSelection 재산의 탭 인덱스를 가지고있다 (또는 코드를 통해해야). 이렇게하면 컨트롤에 포커스가없는 경우에도 선택한 항목이 표시됩니다.

+0

그건 그랬습니다; 고맙습니다! 나는 그것이 단순하고 어리 석다는 것을 알았다. –

+0

여러분을 환영합니다. –

0

프로그램을 실행하지 않았지만 lvwFile.Items에서 원하는 행을 선택하고 Selected 값을 true로 설정할 수 없는지 확실하지 않습니다. 예 :

temp.Items(rowIndex).Selected 
+0

그건 내가하고있는 일이다. (라인 끝에 "= true"를 추가하면). 항목을 선택하지만 행이 선택되었다는 것을 사용자에게 나타내지는 않습니다. 이것이 내 문제입니다. –

+0

devExpress를 사용했으며 변경 작업은 temp.Items (rowIndex) .editValue = true로 변경해야합니다. – Kyra

-1

selectedIndexChanged 이벤트에 등록하십시오. 여기서는 선택한 항목에서 필요한 시각적 하이라이트를 모두 수행 할 수 있습니다.

void listView1_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     foreach (ListViewItem lvi in listView1.SelectedItems) 
     { 
      lvi.BackColor = Color.Black; 
      lvi.ForeColor = Color.Chocolate; 
     } 
     // TODO: Reset the other items to normal. 
    } 
+0

내장 시스템 강조 표시를 사용하지 않는 이유는 무엇입니까? –

+0

이것은 처음에 내가 한 일입니다. 그것은 작동하지만, 확실히 차선책입니다. –

-1

당신이하고있는 일은 잘 작동합니다. 이 목록보기의 TabStop 속성처럼 보이는 작은 시험 후

true로 설정하고, 목록보기는 디자이너 0

+0

단순히 폼이 표시 될 때 컨트롤에 포커스가 강제로 적용됩니다. 사용자가 컨트롤을 탭하면 선택 영역이 다시 사라집니다. –

+0

올바른 시점, 그가 설정되었을 때 선택한 것을 말하고 있기 때문에 (IE : 컨트롤을 처음 표시 함) –

관련 문제