VB.NET学习笔记:自定义控件之扩展TEXTBOX控件——水印文字提示效果

这篇博客介绍了如何在VB.NET中通过自定义控件实现TEXTBOX的水印文字提示效果。作者首先尝试利用TEXTBOX的焦点事件实现,然后决定扩展控件以提高扩展性。通过创建新的自定义控件TextBoxEx,添加watermarkText属性,并重写Enter和Leave事件。最后,作者分享了完整的VB.NET代码实现,并提供了设置水印颜色和字体的选项,使得控件更加灵活。
摘要由CSDN通过智能技术生成

测试环境:windows 7和Microsoft Visual Studio 2017

看到一些优秀软件里的TEXTBOX文本框都有水印文字提示应该输入什么样的信息,获取光标后提示文字消失,光标离开后水印文字出现,效果杠杠的,心里琢磨着能不能在自己在软件中也弄一个这样的效果?
首先想到的是利用TEXTBOX的焦点获得(Enter)和失去(Leave)事件来实现,新建一个窗体应用程序并拉入一个文本框,然后在窗体代码框录入如下代码:

Imports System.ComponentModel
Imports System.Drawing
Imports System.Windows.Forms

Public Class Form1
    Private _textboxHasText As Boolean = False

    Private Sub TextBox1_Enter(sender As Object, e As EventArgs) Handles TextBox1.Enter
        If _textboxHasText = False Then TextBox1.Text = ""
        TextBox1.ForeColor = Color.Black
    End Sub

    Private Sub TextBox1_Leave(sender As Object, e As EventArgs) Handles TextBox1.Leave
        If TextBox1.Text = "" Then
            TextBox1.Text = "水印文字"
            TextBox1.ForeColor = Color.LightGray
            _textboxHasText = False
        Else
            _textboxHasText = True
        End If
    End Sub
End Class

这种实现方式扩展性差,所以想到之前有做过自定义控件来实现DataGridView控件的全选全不选效果及分页效果,今天继续尝试着扩展TEXTBOX,把代码封装方便调用。首先想到的是做一个复合控件,这是最容易实现的,代码跟上述基本一致,因为我还没做过直接扩展控件的经验,对于控件继承、重载、重写等概念还处于一知半解状态,所以就想着借此机会做个尝试,顺便巩固学

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值