2011-01-22 6 views
2

방금 ​​C# .net에서 ListView를 사용하기 시작했습니다.ListView의 특정 열을 선택하고 C# .net의 새 메시지 상자에 인쇄하십시오.

항목과 하위 항목을 추가하는 방법을 알아야합니다. listview를 살펴보면서 여러 열이있는 전체 열에서 모든 데이터를 가져 오려고했습니다.

이 작업을 수행하는 방법을 알고 싶습니다.

I가 행에서 특정 데이터를 선택 목록에이 코드를 발견

ListView.SelectedIndexCollection SEL = listView1.SelectedIndices;

 if (sel.Count == 1) 
     { 
      ListViewItem selItem = listView1.Items[sel[0]]; 
      MessageBox.Show(selItem.SubItems[2].Text); 
     } 

도움이되었지만 모든 항목을 나열하고 싶습니다. 모든 항목을 배열에 추가하고 싶습니까?

답변

0
private string[] GetListViewItemColumns(ListViewItem item) { 
     var columns = new string[item.SubItems.Count]; 
     for (int column = 0; column < columns.Length; column++) { 
      columns[column] = item.SubItems[column].Text; 
     } 
     return columns; 
    } 

하여이 작업을 수행 할 수 있습니다. ListView는 실제로 디스플레이 정보를 의미합니다, 그것은 훌륭한 컬렉션 클래스가 아닙니다. 데이터를 꺼내는 것은 느리고 치명적이며 문자열 만 저장할 수 있습니다. 프로그램의 데이터를 원래 형태대로 유지하십시오 (예 : List<Foo>). 이제는 간단하고 빠릅니다.

+0

정확히는 아니지만이 지점을 얻었습니다. 고맙습니다. – HackTweaks

0
foreach (ListViewItem item in listView1.Items) { 
    // Do something with item 
}
0

내가이 일에 대해 몇 가지주의를 추천 할 것입니다 foreach(ListViewItem item in listView1.Items) { foreach(var subtem in item.SubItems) { // Do what ever you want to do with the items. } }

+0

나는 실제로 그것을 얻지 않았다. 이 루프에서 열에서 문자열이나 정수를 가져 오는 방법은 무엇입니까? – HackTweaks

관련 문제