Entwickler-Ecke
WinForms - anzeigen des kontextmenüs verhindern
javax - Di 08.07.08 16:28
Titel: anzeigen des kontextmenüs verhindern
hallo
habe eine frage zum thema kontextmenu.
ich habe ein kontextmenü für eine liste welches ein item hat um den gewählten listeneintrag zu löschen.
das kontextmenü soll aber nicht angezeigt werden wenn die liste leer ist oder kein eintrag in der liste ausgewählt worden ist.
wäre echt froh wenn mir jemand ein paar lösungsansätze geben könnte
mfg
Christian S. - Di 08.07.08 16:35
Hallo!
Erweitere doch Deinen Titel ein bisschen, damit er mehr über das Thema aussagt. Einfach oben bei Deinem ersten Beitrag auf

oder

klicken und den Titel ändern. Danke Dir! :-)
Zu Deinem Problem: Das Kontextmenü sollte das Opening-Event haben. In diesem kannst Du
e.Cancel = true; setzen, um das Öffnen zu unterbinden.
Grüße
Christian
javax - Di 08.07.08 16:45
danke für deine antwort
das opening event ist popup.
also kann man es doch mittels diesem event verhindern?
leider bekomme ich als zweiten übergabeparameter EventArgs welcher kein Cancel property hat.
in welchen typ muss ich EventArgs casten?
Christian S. - Di 08.07.08 16:49
javax hat folgendes geschrieben: |
| das opening event ist popup. |
Nein, das Opening-Event ist Opening! :-)
javax hat folgendes geschrieben: |
leider bekomme ich als zweiten übergabeparameter EventArgs welcher kein Cancel property hat.
in welchen typ muss ich EventArgs casten? |
Nein, Du musst das richtige Event benutzen ;-)
Dein ContextMenuStrip hat ein Opening-Event. Der Handler für dieses Event hat als zweiten Parameter ein CancelEventArgs.
javax - Di 08.07.08 16:57
hmm.. finde kein opening menu.
liegt aber wohl daran dass ich für windows mobile progge. da hat ne liste auch kein Click-Event :evil: :evil:
CancelEventArgs kennt er zwar aber EventArgs können leider nicht in diesen typ gecastet werden.
eine andere frage... was ist ein ContextMenuStrip??
Christian S. - Di 08.07.08 17:02
javax hat folgendes geschrieben: |
| liegt aber wohl daran dass ich für windows mobile progge. da hat ne liste auch kein Click-Event :evil: :evil: |
Und Du meinst nicht, dass diese Information
vielleicht wertvoll sein könnte? :autsch: Da kann ich ja lange Lösungen fürs normale Framework posten ... :roll:
javax hat folgendes geschrieben: |
| eine andere frage... was ist ein ContextMenuStrip?? |
Etwas, welches es beim Compact Framework nicht gibt, da heißt es einfach ContextMenu ...
Ich schätze, dann kannst Du nur die ContextMenu-Eigenschaften der Listbox auf
null setzen, wenn nichts selektiert ist und dann wieder zurücksetzen, wenn was selektiert wird. Das machst Du dann am Besten im SelectedIndexChanged-Ereignis der Listbox.
javax - Mi 09.07.08 08:07
Christian S. hat folgendes geschrieben: |
javax hat folgendes geschrieben: | | liegt aber wohl daran dass ich für windows mobile progge. da hat ne liste auch kein Click-Event :evil: :evil: |
Und Du meinst nicht, dass diese Information vielleicht wertvoll sein könnte? :autsch: Da kann ich ja lange Lösungen fürs normale Framework posten ... :roll:
javax hat folgendes geschrieben: | | eine andere frage... was ist ein ContextMenuStrip?? | Etwas, welches es beim Compact Framework nicht gibt, da heißt es einfach ContextMenu ...
Ich schätze, dann kannst Du nur die ContextMenu-Eigenschaften der Listbox auf null setzen, wenn nichts selektiert ist und dann wieder zurücksetzen, wenn was selektiert wird. Das machst Du dann am Besten im SelectedIndexChanged-Ereignis der Listbox. |
danke für die antwort.
naja... die unterschiede zwischen comapct und normalem framework halten sich in grenzen.
wenn man compact framework erwähnt meldet sich meistens keiner . :wink:
war bis jetzt halt immer so...
edit:
mit auf null setzten geht leider auch nicht so einfach.
leite mir halt jetzt einfach ne klasse von ContextMenu ab und überschreibe die Show-Methode
new edit:
hmm.. irgendwie wird meine überschriebene Show Methode nciht aufgerufen.
Was könnten hier die fehlerquellen sein?
Th69 - Mi 09.07.08 09:49
Deine Show-Methode wird nicht aufgerufen, da Show nicht virtuell ist.
Aber der Vorschlag mit "auf null setzen" dürfte der Sinnvollste sein...
Und zu
| Zitat: |
| die unterschiede zwischen comapct und normalem framework halten sich in grenzen. |
Also wenn ich so in die Hilfe schaue, dann ist aber nur ein Bruchteil der Funktionen auch für das CompactFramework definiert, daher ist diese Info schon sehr wichtig!
javax - Mi 09.07.08 11:28
so habe es geschafft das problem zu lösen.
falls jemand mal das gleiche problem hat wie ich...
C#-Quelltext
1: 2: 3: 4: 5: 6:
| private void OnPopUpContextMenu(object sender, EventArgs e) { listAnzeige.Update(); if (listAnzeige.SelectedIndex < 0) listAnzeige.ContextMenu = contextMenu1; } |
Moderiert von
Christian S.: Code- durch C#-Tags ersetzt
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!