【问题标题】:how to use placeholder for Textbox in VB.Net 2010 like html如何在 VB.Net 2010 中使用占位符作为文本框,如 html
【发布时间】:2017-03-16 02:34:03
【问题描述】:

我有一个表格可以进行一些数学计算。

我希望用户能够快速输入数据而不会删除值。

我觉得像在 html 中那样使用占位符很好

但我如何在 VB.Net 2010 中使用它? 谢谢

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        gtp.Text = "0.00"
        vatt.Text = "0.00"
        wht.Text = "0.00"
        npr.Text = "0.00"
    End Sub

【问题讨论】:

    标签: vb.net


    【解决方案1】:

    如果当前值为占位符值,此代码清除文本框,否则保留输入值。

    Public Class Form1
    Private Sub TextBox1_GotFocus(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.GotFocus
        If TextBox1.Text = "0.00" Then
            TextBox1.Text = ""
        End If
    End Sub
    Private Sub TextBox1_LostFocus(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.LostFocus
        If TextBox1.Text = "" Then
            TextBox1.Text = "0.00"
        End If
    End Sub
    End Class
    

    如果您总是希望它清除文本框,请使用它。

    Public Class Form1
    Private Sub TextBox1_GotFocus(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.GotFocus
        TextBox1.Text = ""
    End Sub
    Private Sub TextBox1_LostFocus(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.LostFocus
        If TextBox1.Text = "" Then
            TextBox1.Text = "0.00"
        End If
    End Sub
    End Class
    

    要模拟实际占位符,例如 HTML5 中的占位符,您需要在文本框顶部覆盖 label 控件并根据事件 keyDownLostFocus/Leave 事件设置其可见性这将取决于您的 VS 版本

    【讨论】:

    • 我正在寻找一种在您开始输入时清除文本框的方法,但我没时间了。您可以设置第一个击键标志并保留击键或在输入文本框时全选。
    【解决方案2】:

    我为此工作创建了 DLL。

    https://1drv.ms/u/s!AmR1BM6vUcAGgYsLPvjrec0Z92OTlQ

    或者你可以下载项目 PlaceHolder 类

    https://1drv.ms/u/s!AmR1BM6vUcAGgYsMNFGbtW5HL_4Ifw

    如何使用?

    在您的 winform 项目中添加 DLL。

    (我为这个例子添加了分组框)

    CS 代码:

    var textBoxWithPlaceHolder = new Placeholder.PlaceholderTextBox();
    textBoxWithPlaceHolder.PlaceholderText = "Search text";
    textBoxWithPlaceHolder.Location  = new Point(x: 10, y: 20);
    GBTextBox.Controls.Add(textBoxWithPlaceHolder);
    

    结果winform

    【讨论】:

      猜你喜欢
      • 2020-06-12
      • 2018-01-28
      • 1970-01-01
      • 1970-01-01
      • 2017-12-03
      • 1970-01-01
      • 2014-05-20
      • 2014-02-20
      • 2011-08-13
      相关资源
      最近更新 更多