2009-02-23 22 views
12

Cách tốt nhất để triển khai chức năng Watermark cho System.Windows.Forms.TextBox trong .Net 2.0 bằng C# là gì?Watermark trong System.Windows.Forms.TextBox


Edit:

Sử dụng thành phần làm sẵn từ CodeProject là rất dễ dàng. Nó cũng có Giấy phép mở dự án mã (CPOL).

+0

Tên thay thế cho 'watermark' là 'cue'. –

Trả lời

13

thời gian gần đây tôi đang rất cần một textbox watermark, điều đầu tiên mà popped trong đầu tôi là OnLeave và OnEnter sự kiện của textbox, nhưng trước tiên tôi googled nó và tôi có hai liên kết đầu tiên là một trong CodeProject sử dụng không gian tên System.Drawing và một cái khác đã ở đây bằng cách sử dụng SendMessage() trên đây http://vidmar.net/weblog/archive/2008/11/05/watermarked-textbox-in-windows-forms-on-.net.aspx.

Tôi tin rằng SendMessage dễ dàng hơn nhiều và nó cũng không có nhấp nháy trong đó. mặc dù tôi đã sử dụng nó.

Tôi hy vọng nó sẽ hữu ích cho bạn.

+1

@Peymankh: Cảm ơn dấu kiểm +1 và màu xanh lục. SendMessage dễ dàng hơn nhiều –

+0

Ghi chú bổ sung về cách sử dụng Vidmar: * thiết lập watermark = this.txtBoxA.SetWatermark ("BOX"); * * tài liệu tham khảo cần thiết = using System.ComponentModel; bằng cách sử dụng System.Drawing; bằng cách sử dụng System.Windows.Forms; sử dụng System.Runtime.InteropServices; * –

+0

Làm thế nào để sử dụng nó trong một ứng dụng windows? – User13839404

7

Nó không đơn giản như người ta nghĩ. Bạn cần sử dụng không gian tên System.Drawing và ghi đè sự kiện OnPaint.

Dưới đây là một số liên kết của một số người đã thực hiện nó.

Link & Link

+0

@BtBh: Cảm ơn. Liên kết đầu tiên là những gì tôi cần. +1 Tôi đồng ý rằng nó không thẳng thắn như bạn nghĩ. –

+0

Tôi muốn giới thiệu điều này như một câu trả lời! –

Các vấn đề liên quan