Friday, July 18, 2003 - Posts

MouseLeave bei Kontextmenü's?

"Sebastian Kralemann" <s.kralemann@t-online.de> schrieb im Newsbeitrag


Gibt es eine Möglichkeit bei einem Kontextmenü ein Event wie z.B. das
MouseLeave-Event zu bekommen, wenn man mit der Maus aus dem Bereich des
Kontextmenüs fährt?

Mein Problem: Ich zeige im Status-Bar einen Hilfe-Text
zu jedem Menu-Item an. Dazu verwende ich einen IExtenderProvider und setze
auf das Select-Event hin den richtigen Text. Wenn nun mit der Maus aus dem
Bereich des Kontextmenüs gefahren wird und z.B. irgendwo hingeclickt wird,
wird das Kontextmenü unsichtbar gemacht. Daraufhin wird im Status-Bar
immer noch der Text des zuletzt selektierten Items angezeigt. Ich möchte nun
irgendwie mitbekommen, wenn mit der Maus aus dem Bereich des Kontextmenüs
gefahren wird, damit ich den Status-Bar-Text wieder zurücksetzen kann,
z.B. auf "Ready".
Kann mir jemand helfen?

 

[Neno Loje]: Habe mal versucht eine Lösung für das Problem zu finden.

Ich würde Dir empfehlen Folgendes zu versuchen:

Private Sub MenuItem1_Select(ByVal sender As Object, ByVal e As
System.EventArgs) Handles MenuItem1.Select

    Me.Text = "Test 1 ausgewählt!"

End Sub

Private Sub MenuItem2_Select(ByVal sender As Object, ByVal e As
System.EventArgs) Handles MenuItem2.Select

    Me.Text = "Test 2 ausgewählt!"

End Sub

Private Sub Form1_MenuComplete(ByVal sender As Object, ByVal e As
System.EventArgs) Handles MyBase.MenuComplete

    Me.Text = "Ready."

End Sub

Schöne Grüße,

Neno Loje

with 0 Comments

Erkennen wann eine Datei fertig im Ordner angekommen ist

"Michael Andreas" <fornt-end-soft@t-online.de> schrieb im Newsbeitrag

Ich teste in einem Verzeichnis mit dem FileSystemWatcher
ob eine Datei kommt. Ich will sie aber erst weiter verarbeiten
wenn sie komplett angekommen ist und nicht wenn sie noch
wächst.

[Neno Loje]: Ich habe mal ein bisschen rumgespielt und da wie Joachim korrekt sagt keine API-Funktion existiert, die uns hier zur Hilfe kommen könnte, ist ein bisschen Einfallsreichtum gefragt.

 

Mir ist aufgefallen, dass bei Kopiervorgängen im Windows Explorer unabhängig von der Dateigröße nach dem Created-Event, zwei Mal das Changed-Event gefeuert wird - einmal bevor der eigentliche Inhalt kopiert wurde und einmal danach.

 

Leider ist das bei anderen Programmen, die Dateien kopieren, sowie in der Konsole etwas anders: Hier gibt es nach dem Created-Event auch nur ein Changed-Event nachdem alles vorbei ist.

 

Also lautet die ultimative Lösung wie Folgt:

 

Im Changed-Event versuchen die Datei zu öffnen und bei evtl. Exception (da die Datei über den Explorer kopiert wurde) einfach ignorieren. Bei meinen Versuchen konnte man spätestens bei dem zweiten Changed-Event die Datei mit Schreibzugriff öffnen.

 

Viel Spaß damit!

with 0 Comments