2013-07-22 2 views
1

저는 listview가있는 프로젝트에 있습니다.이 목록보기에는 2 개의 그룹이 있습니다. 각각의 그룹에 대해 행동을 생성 할 수 있는지 궁금합니다.그룹에 항목을 할당하고 각 그룹에 동작을 설정하십시오.

"온라인"이라는 항목과 "오프라인"이라는 항목이 있습니다. 이러한 항목 앞에는 빨간색 또는 검은 색 원 (이미지)이 있습니다. 두 항목 모두 "라이브"또는 "오프라인"이라는 그룹에 있습니다.

  • 내가 원하는 때마다 항목의 그룹을 변경 할 수 있어야한다 :

    Sample screenshot

    나는이 일을하고 싶다.

  • 항목이 그룹에 있으면 동작이 변경되어야합니다. 내 이미지 뷰에서

ImageList.Images.Add(My.Resources.bullet_black) 
ImageList.Images.Add(My.Resources.bullet_red) 
Liste.LargeImageList = ImageList 

Dim groupeOffline As New ListViewGroup("Offline") 
Dim groupeLive As New ListViewGroup("Live") 
Liste.Groups.AddRange({groupeLive, groupeOffline}) 

Liste.Items.Add("Offline", 0).Group = groupeOffline 
Liste.Items.Add("Online", 1).Group = groupeLive 
을 ("라이브"오프라인 항목이 그룹에 "예를 들어, 이미지 대신 검은 점의 빨간 점으로 변경됩니다), 0 인덱스입니다 검은 점 은 1 개 인덱스는 빨간색

답변

1

에 코드를 이미 포함하고 필요한 사항을 당신은 새 항목을 추가 할 때 원하는 수정 돌보는 기능에 의존 할 수 있습니다 대부분의 예를 들면 다음과 같습니다...

Private Sub updateGroups(curItem As String, targetGroup As String) 

    Dim curIndex As Integer = 1 'Same index for both group and image 
    Dim curGroup = groupeLive 
    If (targetGroup.ToLower() = "offline") Then 
     curIndex = 0 
     curGroup = groupeOffline 
    End If 

    Liste.Items.Add(curItem, curIndex).Group = curGroup 

End Sub 

그리고 당신은 다음과 같이 호출 할 수 있습니다 : 그것은 두 그룹은 (당신이 그들이 인수로 전달이되도록 변경하는 것을 선호 수도 있습니다) 세계적으로 선언 할 것으로 예상 염두에 updateGroups("new live item", "Live") 또는 updateGroups("new offline item", "Offline")

곰.

+0

안녕 varocarbas, 그것은 꽤 잘 작동하지만 난 (내 프로젝트 : P) 더 나은 버전을했다 당신이 intrested하는 경우 : http://pastebin.com/awsEEpHt 감사합니다. – Riptide

+0

@Riptide 더 나은 버전을 사용하면 내 것을 가져 가고 try ... catch를 추가하는 것을 의미합니까? LOL. 나는 이것을 당신이 옳은 대답으로 수여 할 것이라고 생각합니다. – varocarbas

+0

내가 bool을 사용하여 그룹을 설정한다는 것을 의미합니다. 예전 그룹에서 이전 항목을 삭제하고 "curItem =" "Exit Sub"를 추가 했으므로 문제가 발생했습니다. 예. – Riptide

관련 문제