2009-02-23 2 views
12

Was ist der beste Weg, um Watermark-Funktionalität für eine System.Windows.Forms.TextBox in .Net 2.0 mit C# zu implementieren?Wasserzeichen in System.Windows.Forms.TextBox


Edit:

Mit der vorgefertigten Komponente von Codeproject war sehr einfach. Es ist auch mit einer The Code Project Open-Lizenz (CPOL).

+0

Alternative Name für 'Wasserzeichen' ist 'cue'. –

Antwort

13

in letzter Zeit ich ein Wasserzeichen Textbox erforderlich, das erste, was mir in den Sinn kam, hielt OnLeave und OnEnter Ereignisse von Textbox, aber zuerst googeln ich es und ich habe zwei Links war zuerst das in CodeProject, das den System.Drawing-Namespace verwendet und der andere hier verwendete hier SendMessage() http://vidmar.net/weblog/archive/2008/11/05/watermarked-textbox-in-windows-forms-on-.net.aspx.

Ich glaube, die SendMessage ist viel einfacher und es hat auch kein Flimmern darin. obwohl ich es benutzt habe.

Ich hoffe, es wird für Sie hilfreich sein.

+1

@Peymankh: Danke +1 und grünes Häkchen. Sendmessage ist viel einfacher –

+0

Zusätzliche Hinweise auf Vidmar Nutzung: * Einstellung Wasserzeichen = this.txtBoxA.SetWatermark („BOX“); * * Referenzen benötigt = mit System.ComponentModel; Verwenden von System.Drawing; Verwenden von System.Windows.Forms; using System.Runtime.InteropServices; * –

+0

Wie man es in einer Windows-Anwendung benutzt? – User13839404

7

Es ist nicht so einfach, wie man denken würde. Sie müssen den System.Drawing-Namespace verwenden und das OnPaint-Ereignis überschreiben.

Hier sind einige Links von einigen Leuten, die es schon getan haben.

Link & Link

+0

@BtBh: Danke. Der erste Link war was ich brauchte. +1 Ich stimme zu, dass es nicht so geradlinig ist, wie Sie denken würden. –

+0

Ich würde das als Antwort empfehlen! –