2012-12-04 4 views

답변

1

ListViewItem.Remove 메서드는 ListViewItem에서 제거 할 수 있습니다.

이 메서드는 항목이 들어있는 ListView 컨트롤의 ListView.ListViewItemCollection의 Remove 메서드와 비슷합니다. Remove 메서드를 사용하여 ListView 컨트롤에서 항목을 제거 할 수 있습니다. 이 기능은 항목을 다른 ListView 컨트롤로 이동하거나 응용 프로그램 내에서 항목을 제거하기 위해 사용자의 요청에 따라 항목을 제거해야하는 경우에 유용합니다.

당신이 당신의 ListView에서 ListViewItems의 모든 순환의 Tag 볼 수 있었다 예를 들어

, 그리고 Remove 제거 할 항목 :

// Create the ListView and ListViewItem. 
ListView myList = new ListView(); 
ListViewItem myItem = new ListViewItem { Tag = "MyTag", Text = "My ListViewItem" }; 
myList.Items.Add(item); 

// Look for the ListViewItem with a Tag of "MyTag" and remove it. 
foreach (ListViewItem item in myList.Items) { 
    if (String.CompareOrdinal(item.Tag as string, "MyTag") == 0) { 
     i.Remove(); 
     break; 
    } 
} 

이 예는 첫 번째 일치를 제거한 후 종료 목. 제거해야하는 일치하는 복수의 ListViewItems이있는 경우 해당 컬렉션을 만들어야하며 그 후에 컬렉션을 제거해야합니다.

0

미래에 커뮤니티에 질문에 넣은 노력의 양을 나타내야합니다. 당신이 시도한 것을 우리에게 말하고 우리에게 몇 가지 예를 들려 줄 수 있습니다. 그러나 귀하의 질문에 대한 답변을 제공하는 코드가 아래에 나와 있습니다.

int id = 0; 

foreach (ListViewItem item in listView1.Items) 
{ 
    if((int)item.Tag == id) 
    { 
     item.Remove(); 
     break; 
    } 
} 

참고 : 태그가 정수인 것으로 가정합니다. 이것이 항상 그런 경우가 아니라면 오류를 방지하는 코드를 추가해야합니다.

1

여기에 빠른 기능이 있습니다. 그것은 linq를 사용합니다. myTag은 모든 개체가 될 수 있습니다.

 string myTag = "aaa"; 

     List<ListViewItem> lst = listView1.Items.Cast<ListViewItem>().Where(i => i.Tag == myTag).ToList(); 
     if (lst.Count != 0) 
     { 
      listView1.Items.Remove(lst.First()); 
     }