Autor Beitrag
javax
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25



BeitragVerfasst: Di 08.07.08 16:28 
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


Zuletzt bearbeitet von javax am Di 08.07.08 16:42, insgesamt 1-mal bearbeitet
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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 user defined image oder user defined image 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

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
javax Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25



BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 08.07.08 16:49 
user profile iconjavax hat folgendes geschrieben:
das opening event ist popup.

Nein, das Opening-Event ist Opening! :-)

user profile iconjavax 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.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
javax Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25



BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 08.07.08 17:02 
user profile iconjavax 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:

user profile iconjavax 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.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
javax Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25



BeitragVerfasst: Mi 09.07.08 08:07 
user profile iconChristian S. hat folgendes geschrieben:
user profile iconjavax 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:

user profile iconjavax 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4805
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25



BeitragVerfasst: Mi 09.07.08 11:28 
so habe es geschafft das problem zu lösen.

falls jemand mal das gleiche problem hat wie ich...

ausblenden 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 user profile iconChristian S.: Code- durch C#-Tags ersetzt