Группы просмотра списка VB.Net

Я новичок здесь и придумал свой первый вопрос: у меня есть список с некоторыми группами, в каждой группе есть некоторые элементы. Я добавил ContextMenuStrip в список, и когда я щелкаю правой кнопкой мыши по выбранному элементу, мне нравится получать имя группы, к которой он принадлежит. Может ли кто-нибудь помочь мне, как это сделать?

If LV1.SelectedItems(0).Text = LV1.Groups(0).ToString Then
    MsgBox("Hi")
End If

person user3694177    schedule 31.05.2014    source источник
comment
покажите код, который вы уже пробовали, чтобы у нас была отправная точка, чтобы помочь. в противном случае это похоже на то, что вы просите нас написать ваш код для вас.   -  person Ňɏssa Pøngjǣrdenlarp    schedule 31.05.2014
comment
Я пробовал так: puu.sh/98Txl/3eec32d3ea.png Но это несколько паршиво, Мне не нравится создавать бесконечный длинный оператор if/elseif, разве нет лучшего решения, такого как цикл или что-то в этом роде?   -  person user3694177    schedule 31.05.2014
comment
весь код должен быть размещен здесь; отредактируйте свой пост. никому не нравится заходить на youtube, facebook или imgshack, чтобы посмотреть код. код не соответствует вашему вопросу - вы сказали, что хотите увидеть группу при щелчке правой кнопкой мыши, код показывает выбранное, что не одно и то же. Вы же знаете, что группа будет отображаться, когда View = Detail, верно?   -  person Ňɏssa Pøngjǣrdenlarp    schedule 31.05.2014
comment
Это происходит в событии щелчка элемента Contextmenustripitem. Это соответствующая часть, где должна быть идентифицирована группа, к которой принадлежит выбранный элемент.   -  person user3694177    schedule 31.05.2014
comment
LV1.SelectedItems не совпадает с элементом, над которым находится мышь; это 2 разные вещи. что вы хотите сделать с названием группы? просто получить его в вар?   -  person Ňɏssa Pøngjǣrdenlarp    schedule 31.05.2014
comment
Цель состоит в том, чтобы проверить, принадлежит ли выбранный элемент списка к группе Test, а затем выполнить a), иначе, если он принадлежит к группе Test2, затем выполнить b) и т. д.   -  person user3694177    schedule 31.05.2014


Ответы (1)


Получить имя группы LV для элемента, над которым находится указатель мыши:

Private thisGroupName As String = ""

Private Sub MouseDown(sender, e As MouseEventArgs)...
    If e.Button = MouseButtons.Right Then
        thisGroupName = GetLVGroupAt(e.X, e.Y)
    End If
End Sub

Private Function GetLVGroupAt(X As Integer, Y as Integer) As String
    Dim theGrp As String = ""

    Dim ht As ListViewHitTestInfo = myLV.HitTest(X, Y)
    ' the mouse might be down over a NON item area, like a blank "row"
    ' AND if the items does not belong to a Group, 'Group' will
    ' be Nothing:
    If (ht.Item IsNot Nothing) AndAlso (ht.Item IsNot Nothing) Then
         theGrp = ht.Item.Group.Name
    End If

    Return theGrp
End Function

Оценка имени группы остается для потребляющего кода.

person Ňɏssa Pøngjǣrdenlarp    schedule 31.05.2014