Rechte Maustaste in Grids

18/05/2008 - 17:47 von Matthias Kahlert | Report spam
Habadere mitanander...

mal wieder eine kleine Frage von mir ;-)

Ich habe in meiner Anwendung zahlreiche Grids drin. Nun kam ich
dummerweise auf die Idee, doch ein paar dieser Grids mit einer Funktion
zur rechten Maustaste zu versehen.

Klappt auch ganz gut, sofern die Eigenschaft AllowCellSelection = .F.
In diesem Fall feuert der RightClick() Event des Grids, auch wenn ich in
eine Zelle klicke.

So, nun habe ich einige Grids, bei denen dies nicht möglich ist (weil
ich dort aktive Controls drin habe wie Checkboxen und Buttons). In
diesem Fall würde ich aber auch gerne den RightClick() Event des Grids
verwenden.

Aber, wie es eben so ist, der feuert einfach nicht. Liegt wohl daran,
dass das Objekt "Text1" den Event schon "entgegennimmt", und damit das
Grid selbst den Event nicht mehr mitbekommt.

Ich hab schon versucht, einfach eine Methode in der Klasse einzubauen im
Grid:

PROCEDURE ColumnCount_Assign
FOR lnI = 1 TO This.ColumnCount
BINDEVENT(This.Columns(lnI).Text1, "RightClick", This, "RightClick")
ENDFOR
ENDPROC

Klappt auch soweit, also der BINDEVENT() làuft durch... Aber das klappt
trotzdem nicht... Im Grid bekomme ich den RightClick auf eine Textbox
nicht mit.

Da in meiner Anwendung zahlreiche Grids enthalten sind, wollte ich
eigentlich nicht in allen Grids überall die Textbox in den Columns
austauschen (ja, ich weiss, dort könnte ich eine Klasse mit dem
entsprechenden Code hinterlegen)...

Jemand ne Idee, warum der BINDEVENT() hier nicht funzt? Oder hab ich
einfach nur nen Denkfehler drin?

Matthias
 

Lesen sie die antworten

#1 Jürgen Wondzinski
18/05/2008 - 19:15 | Warnen spam
Halllo Matthias
Keine Ahnung, warum du da den ColumnCount vergewaltigst, im Normalfall nehm
ich dazu den Grid.INIT her:

FOR EACH oCol IN This.Columns FOXOBJECT
BINDEVENT(oCol.Text1, "Rightclick", This, "Rightclick")
ENDFOR


Zum Testen dann noch das hier in den Grid.Rightclick:

ACTIVATE SCREEN
IF AEVENTS(atest,0) = 3
? aTest(1).parent.name, "geklickt!"
ELSE
? "Grid geklickt!"
ENDIF




Jürgen Wondzinski

Microsoft Visual FoxPro Technologieberater
Microsoft Most Valuable Professional seit 1996
"*´¨)
¸.•´¸.•*´¨) ¸.•*¨)
(¸.•´. (¸.•` *
.•`.Visual FoxPro: It's magic !
(¸.•``••*

Ähnliche fragen