LabVIEWForum.de
Rückmeldung aus .NET-Toolstrip-Dropdown-Menü - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: ActiveX & .Net (/Forum-ActiveX-Net)
+---- Thema: Rückmeldung aus .NET-Toolstrip-Dropdown-Menü (/Thread-Rueckmeldung-aus-NET-Toolstrip-Dropdown-Menue)



Rückmeldung aus .NET-Toolstrip-Dropdown-Menü - jg - 25.10.2010 16:44

Hallo,

ich habe mal ein wenig mit .NET-Controls herumexperimentiert, herausgekommen ist die Verwendung eines .NET-Toolstrips, mit dem ich dynamisch ein Menü aus Buttons und "ToolStripSplitButtons" erzeuge - bei den Splitbuttons wird dynamisch ein Pulldownmenü angelegt.

Die Mausklicks auf den Buttons innerhalb des Toolstrip werden hervorragend per Callback-Event-VI erkannt.

Ärgerlich wird es dann aber bei den Pulldownmenüs. Wenn ein Item eines Pulldownmenüs vor einem LabVIEW-Control (z.B. String) liegt, dann wird ein Mausklick zuerst einmal dem LabVIEW-Control zugeordnet. Liegt das Pulldownmenü-Item direkt vor dem Pane-Bereich oder vor einer Decoration, dann klappt das Mausklick-Event. Wieso? Hat jemand eine Idee hierzu? (1)

Ich habe jetzt herumgetrickst, und habe als Workaround eine durchsichtige Dekoration auf dem FP platziert, die bei Mouse-Enter des Pulldownmenü sichtbar gemacht wird (im Bsp ist sie zu Demo-Zwecken nicht komplett durchsichtig). Damit klappt das Event wieder. Aber gefallen tut mir das nicht. (2)

Hat jemand eine Idee ohne zusätzliches Deko-Element?

Lv10[attachment=30157]

Gruß, Jens

P.S.:
ad (1): Wählt z.B. das Event Zwei->ddd aus.
ad (2): Wählt z.B. das Event Zwei->hhh aus. Das liegt zwar auch vor dem String, aber es ist ein Deko-Element dazwischen. Oder das Event Zwei->aaa, das geht auch, da das Item direkt vor dem Pane-Bereich liegt.
(3): Die verwendeten Icons sind aus der famfamfam-Silk-Icons-Library.


Rückmeldung aus .NET-Toolstrip-Dropdown-Menü - jg - 27.10.2010 07:04

- Push -

Schwirrt hier kein .NET-Experte rum (bzw. einer, der sich besser mit .NET auskennt als ich)? Einer der 6, die sich den zip-File heruntergeladen haben?
Habe ich irgendwas falsch gemacht bei der Erstellung der Pulldownmenüs des Toolstrip? Oder ist das Verhalten einfach so - entweder von .NET aus oder von LabVIEW, und ich muss mit der Notlösung leben, eine unsichtbare Dekoration per Callback-Event einzublenden?

Gruß, Jens


Rückmeldung aus .NET-Toolstrip-Dropdown-Menü - A.Berndsen - 27.10.2010 08:08

Hi Jens,

ich bin zwar kein .NET Experte, hätte trotzdem mal reingesehen, aber bei LV2010 kann ich nicht mehr mithalten.Wink

Grüße
Andreas


Rückmeldung aus .NET-Toolstrip-Dropdown-Menü - SeBa - 27.10.2010 08:43

Habs runtergeladen und reingeschaut, hatte aber keine Zeit zum AntwortenBig Grin
Leider kann ich dir auch nicht sagen, woran es hier hakt.

Mir sind folgende Verhaltensweisen noch aufgefallen:

* mir der Maus in das Pulldown klicken, aber die Taste gedrückt halten, dann den Eintrag auswählen. Funktioniert.
* Doppelklick funktioniert.

-> Was ich daraus schließe? Fokus-Problem. Kann ich aber nicht beweisen ^_^


Das Pulldown hat irgendwo eine Eigenschaft um den Fokus zu bekommen (per Programm versteht sich). Kannst du mal versuchen beim MouseOver/MouseEnter Event dem Pulldown den Fokus zu geben/erzwingen?
Theorie:
Es scheint in die Richtung zu laufen, dass keim Klicken des Pulldowns und Loslassen der Taste dea Pulldown bzw. LV vergisst, dass es den Fokus hat. Beim Doppelklick bekommt es zuerst den Fokus, dann wird ausgewählt. Beim gedrückt halten der Maustaste wird der Fokus behalten, daher funktioniert es da.

Wie das jetzt mit dem Control/Dekoration zusammenhaängt ---> BigBlackBox...

Gruß SeBa


Rückmeldung aus .NET-Toolstrip-Dropdown-Menü - jg - 27.10.2010 09:16

@Andreas:
Für dich inLv85_img[attachment=30221]

Gruß, Jens

--

' schrieb:Mir sind folgende Verhaltensweisen noch aufgefallen:

* mir der Maus in das Pulldown klicken, aber die Taste gedrückt halten, dann den Eintrag auswählen. Funktioniert.
* Doppelklick funktioniert.

-> Was ich daraus schließe? Fokus-Problem. Kann ich aber nicht beweisen ^_^
Klingt logisch...
' schrieb:Das Pulldown hat irgendwo eine Eigenschaft um den Fokus zu bekommen (per Programm versteht sich). Kannst du mal versuchen beim MouseOver/MouseEnter Event dem Pulldown den Fokus zu geben/erzwingen?
Beim Toolstrip habe ich die Methode gefunden. Bringt leider nichts. Ich suche noch weiter.
' schrieb:Theorie:
Es scheint in die Richtung zu laufen, dass keim Klicken des Pulldowns und Loslassen der Taste dea Pulldown bzw. LV vergisst, dass es den Fokus hat. Beim Doppelklick bekommt es zuerst den Fokus, dann wird ausgewählt. Beim gedrückt halten der Maustaste wird der Fokus behalten, daher funktioniert es da.

Wie das jetzt mit dem Control/Dekoration zusammenhaängt ---> BigBlackBox...
Klingt plausibel. Und wenn eine Dekoration dazwischen ist, dann gibt es kein LabVIEW-Element, dass den Fokus bekommen kann. Deshalb klappt es dann.

Gruß, Jens


Rückmeldung aus .NET-Toolstrip-Dropdown-Menü - rasta - 14.12.2010 16:01

Hallo Jens,
Idee: Im MsClick.vi den String-Control auf Disabled setzten und im MsLeave.vi wieder zurück auf Enabled

Gruß
Ralf


Rückmeldung aus .NET-Toolstrip-Dropdown-Menü - jg - 14.12.2010 16:07

Nette Idee, aber leider zu unflexibel. Das mit dem einem String war ja nur das Bsp. zur Verdeutlichung meines Problems.
In der realen Anwendung habe ich da x verschiedene Controls dahinter, teils in Subpanels. Da würde ich verrückt bei werden, wenn ich da alles deaktiviere.
Dann bleibe ich bei der bisherigen Lösung mit der unsichtbaren Dekoration.

Gruß, Jens