Entwickler-Ecke

Sonstiges (.NET) - MenuItem abrfagen


schickmaster - Do 19.08.10 12:01
Titel: MenuItem abrfagen
hey

steht grade aufm schlauch:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
....
 private static void Sendpic(Bitmap bmp)
        {    bool cancel = false;
             
             notico.ContextMenu.MenuItems["1"].MenuItems["1.1"].Enabled = false;
             notico.ContextMenu.MenuItems["1"].MenuItems["1.2"].Enabled = false;
             notico.ContextMenu.MenuItems["2"].Enabled = false;
             MenuItem miCurr = new MenuItem { Text = "Cancel", Name = "Cancel" };
             miCurr.Click += //Hier bool cancel auf true setzen? ;
             notico.ContextMenu.MenuItems["LCD"].MenuItems.Add(miCurr);

....


bei aufruf wird quasi alles auf false gesetzt und der cancel neu eingefügt und auf true gesetzt.
habe vor damit eine break bedingung einer forschleife abzufragen, um den prozess abzubrechen.
kann ich hier die variable bool cancel mit dem clickevent ändern? oder gibts vll noch ganz andere
sinnvollere möglichkeiten einen teilprozess, der grade läuft, zu beenden?

gruss alex


danielf - Do 19.08.10 12:31

Hi,

du kannst den Prozess in einen Thread [http://msdn.microsoft.com/de-de/library/ms173178(VS.80).aspx] auslagern. Diesen kannst du dann per Knopfdruck "abschießen".

Alternativ kannst du wie angedacht den miCurr.Click Event registrieren und dort eine globale Variable verändern, die den Prozess anhält.

Gruß


schickmaster - Do 19.08.10 13:08

wie kann ich den mi.Curr in einer variable festhalten?
es wird immer += bzw. -= als operator verlangt.
finde leider dazu nicht viel.
lg alex


danielf - Do 19.08.10 13:20

Das ist ein EventHandler.. bei MSDN findest du immer gute Hilfestellungen. Wie du mit Events umgehst steht auch bei MSDN [http://msdn.microsoft.com/en-us/library/awbftdfh.aspx].

Gruß