Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
25.10.2010, 16:44 (Dieser Beitrag wurde zuletzt bearbeitet: 05.02.2014 21:22 von jg.)
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?
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.
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
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
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Habs runtergeladen und reingeschaut, hatte aber keine Zeit zum Antworten
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
Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.
Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.
Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
27.10.2010, 09:16 (Dieser Beitrag wurde zuletzt bearbeitet: 27.10.2010 20:37 von jg.)
@Andreas:
Für dich in lv85.zip (Größe: 83,08 KB / Downloads: 266)
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
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
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
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!