Context Menu Strip - Nur auf Koordinaten oder in einer Listview

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von programmer71.

    Context Menu Strip - Nur auf Koordinaten oder in einer Listview

    Hallo,
    Ich hätte gerne ein Context Menu Strip in meiner Picturebox auf bestimmten Koordinaten und in der Listview brauch ich auch das gleiche Context Menu Strip, mir gelingt auch beiden, jedoch schaffe ich es nicht dass das Context Menu Strip nur erscheint wenn ich eine Reihe in der Listview drücke, und in der Picture box kommt das Context Menu Strip auch immer, egal wo ich hin drücke :/
    Diesen Code habe ich bis jetzt dafür :

    VB.NET-Quellcode

    1. For i = 0 To ListView1.Items.Count - 1 Step 1 z = ListView1.Items(i).SubItems(1).Text
    2. x11 = Split(z, ",", 4)
    3. curs2 = Picturebox1.PointToClient(Cursor.Position)
    4. x111 = curs2.X / 0.5 ^ (Zoom / 10) y111 = curs2.Y / 0.5 ^ (Zoom / 10) If x111 > x11(0) And x111 < x11(2) And y111 > x11(1) And y111 < x11(3) ThenPicturebox1.ContextMenuStrip = ContextMenuStrip1 ListView1.Items(i).Selected = True For x = i + 1 To ListView1.Items.Count - 1 Step 1 ListView1.Items(x).Selected = False
    5. Next For j = 0 To i - 1 Step 1 ListView1.Items(j).Selected = False
    6. Next
    7. End If
    8. Next



    Und dann noch:

    VB.NET-Quellcode

    1. If ListView1.FullRowSelect Then ListView1.ContextMenuStrip = ContextMenuStrip1 Else
    2. ListView1.ContextMenuStrip.Close()
    3. End If


    MfG Kevin

    VB.NET-Quellcode

    1. ContextMenuStrip.Show( New Point(0,0))
    2. 'Oder beim Cursor:
    3. ContextMenuStrip.Show(Cursor.Position)

    Das beim Click Event der PictureBox

    Wenn du das mit der ListView machen willst, dann mach das mit einer For-Each-Schleife.
    Dann füge für jedes Item ein ContextMenuStrip hinzu.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „programmer71“ ()

    So noch zwei fragen, kann ich da machen das des nach z.B. 2sec wieder weg geht, wenn ich die maustaste los lasse ? :D
    Und kann ich in der listview machen, das wenn ich die form lade, automatisch das erste makiert/selected ist ? :D
    Nutze die MouseEventArgs Klasse und überprüfe die Eigenschaft "Clicks" zum Überprüfen, ob die Maustaste losgelassen wurde oder gedrückt. Wenn es losgelassen wurde, dann starte einen Timer mit einem bestimmten Interval. Wenn 2 Sekunden erreicht sind, dann schließe das ContextMenu.
    Und bei Form_Load:
    ListBox.SelectedItem = ' Dein Item