Maus uns Tastatur abfangen

26/01/2009 - 10:51 von Brian Schmalisch | Report spam
Hallo,

ich habe ein kleines Problem bei der Umsetzung folgender Aufgabe:

Ich starte aus einem Hauptformular ein neues Formular, auf welchem sich
einige benutzerdefinierte Steuerelemente (PictureBox, WebBrowser) befinden.
Nun soll das ganze auf einem Touchscreen zur Anwendung kommen. Beim Druck
auf den Screen (iregndein Punkt) soll das Unterformular mit den
Steuerelemnten geschlossen und ein neues Formular aus dem Hauptformular
geöffnet werden.

Ich habe leider keinen Touchscreen zur Hand und habe deshalb eine Frage an
Euch, wie das ganze funktionieren kann? Ich denke, das ich bei dem
Webbrowser auch ein Problem bekomme. Wenn nun genau auf dem Punkt, wo evtl.
ein Link ist, gedrückt wird - startet dann nicht der neue Link statt das
Formular zu schließen? Ich weiß im Moment nicht so richtig, wie ich das
verhindern kann. Es soll auch keine Schaltflàche zu sehen sein. Schwierig?

Gruss

Brian
 

Lesen sie die antworten

#1 Carsten Unterberg
26/01/2009 - 11:43 | Warnen spam
Hallo Brian,

"Brian Schmalisch" schrieb im Newsbeitrag
news:glk13l$b3k$01$
Hallo,

ich habe ein kleines Problem bei der Umsetzung folgender Aufgabe:

Ich starte aus einem Hauptformular ein neues Formular, auf welchem sich
einige benutzerdefinierte Steuerelemente (PictureBox, WebBrowser)
befinden. Nun soll das ganze auf einem Touchscreen zur Anwendung kommen.
Beim Druck auf den Screen (iregndein Punkt) soll das Unterformular mit den
Steuerelemnten geschlossen und ein neues Formular aus dem Hauptformular
geöffnet werden.

Ich habe leider keinen Touchscreen zur Hand und habe deshalb eine Frage an
Euch, wie das ganze funktionieren kann? Ich denke, das ich bei dem
Webbrowser auch ein Problem bekomme. Wenn nun genau auf dem Punkt, wo
evtl. ein Link ist, gedrückt wird - startet dann nicht der neue Link statt
das Formular zu schließen? Ich weiß im Moment nicht so richtig, wie ich
das verhindern kann. Es soll auch keine Schaltflàche zu sehen sein.
Schwierig?



Für die Tastedrücke kannst du beispielsweise die Eigenschaft "KeyPreview"
der Form auf 'true' setzen. Dann wird, im Gegensatz zum sonst üblichen
Verhalten, zuerst die Form und dann das Steuerelement vom Drücken einer
Taste benachrichtigt. Dort kannst Du dann entscheiden, was passieren soll.

[Form.KeyPreview-Eigenschaft]
http://msdn.microsoft.com/de-de/lib...eview.aspx


Alternativ kannst Du auch einen MessageFilter bauen. Im MessageFilter kannst
Du dann nach allen Nachrichten (WM_KEYDOWN, WM_KEYUP, WM_MOUSEDOWN,
WM_MOUSEUP,...) filtern, und Dir beispielsweise dies als Event zurückgeben
lassen. Für einen MessageFilter musst Du die IMessageFilter-Schnittstelle
implementieren.
Im MessageFilter gibt es die Funktion "PreFilterMessage". Hier musst Du sehr
auf den Rückgabewert achten, da es sonst zu unerwünschten Verhaltensweisen
des Programms kommen kann.

[IMessageFilter-Schnittstelle]
http://msdn.microsoft.com/de-de/lib...ilter.aspx


MfG

Carsten Unterberg | Test-Framework
http://test-framework.blogspot.com/

Ähnliche fragen