ListView/Kontextmenu/Mouseproblem

pschilling

Erfahrenes Mitglied
Hallo zusammen,

wahrscheinlich ist die Lösung ganz einfach aber ich hab es trotz längerem googlen nicht lösen können.

Und zwar erzeuge ich in einem ListView mit Detailansicht ein Kontextmenü.
Wenn man nun einen Eintrag aus dem Kontextmenü auswählt bei dem keine GUI-relevanten Aktionen geschehen verschwindet das Kontextmenü und es erscheint unmittelbar an der Cursorposition dieses blaue Auswahlrechteck als wenn man die linke Maustaste gedrückt hält und die Maus bewegt.

Das ganze passiert auch nur wenn kein ListView-Item beim Erzeugen des Kontext-Menüs ausgewählt ist.

Meine Frage:
Was muss oder kann ich tun um das Erscheinen dieses Auswahlrechtecks zu unterbinden?

Freue mich über Hilfe :)
 
Zuletzt bearbeitet:
Falls vielleicht mal jemand das Problem nachstellen möchte?!

Kontextmenü im Mousedown-Eventhandler des Listviews erzeugen:
Code:
        private void list_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right)
            {
                ListView lv = (ListView)sender;
                ContextMenu m = new ContextMenu();
                MenuItem mi = new MenuItem(Lang.getText("DUMMY"));
                mi.Click += dummy_Click;
                mi.Tag = lv;
                m.MenuItems.Add(mi);

                m.Show((Control)sender, new Point(e.X, e.Y));
            }
        }

und im dazugehörigen Eventhandler einfach gar nichts machen..
Code:
        void dummy_Click(object sender, EventArgs e)
        {
        }
 
erzeug das Contextmenü mal normal im Designer (oder im Konstruktor der Form) und setzt das ContextMenü normal im Control
(list.ContextMenu = meinContextMenu)

die Items des ContextMenüs (wenn sie den dynamisch sind) würde ich eher im Opening ereignis des ContextMenüs erzeugen

im grund, probiers mal mit dem standard ContextMenü verhalten, ohne das über MouseDown selbst zu regeln
 
Hi Spyke,

vielen Dank dir für deine Antwort! Der Effekt tritt nicht mehr auf :)

Musste mich zum dynamischen Erzeugen der MenuItems allerdings des Popup-Events des ContextMenus bedienen da Opening ein Event der ContextMenuStrip-Klasse ist welche ich wiederum nicht an ListView.ContextMenu zuweisen konnte ;)

Also nochmals vielen Dank!
 
Ach, sehe gerade, dass man dem ListView auch ein ContextMenuStrip zuweisen kann :)

Egal, habs jetzt übers ContextMenu gemacht ...
 
Zurück