迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

在 C# 中将占位符添加到文本框

作者:迹忆客 最近更新:2024/01/16 浏览次数:

本教程将教授在 C# 中向文本框添加占位符的三种方法。由于占位符应被视为提示,因此它们不能替代 labelstitle


C# 中创建一个带有占位符文本的文本框

创建一个带有占位符文本的文本框,该文本框会消失并允许用户输入他们的文本,从而为开发人员提供了完全自定义的自由。此外,它允许你设置表单元素的占位符文本的样式。

通常,文本框包含占位符;当它被聚焦时,占位符将被删除,以便用户添加文本。如果文本框失去焦点并且用户没有输入任何文本,则占位符将添加回文本框。

以下 C# 代码将创建一个带有占位符的文本框。

Form1.Designer.cs

// `Form1` as your C# project form
// `Form1.Designer.cs` Code to create a `PlaceholderTxtB` textbox

namespace TextboxPlaceholder {
  partial class Form1 {
    private System.ComponentModel.IContainer components = null;

    protected override void Dispose(bool disposing) {
      if (disposing && (components != null)) {
        components.Dispose();
      }
      base.Dispose(disposing);
    }

#region Windows Form Designer generated code

    private void InitializeComponent() {
      this.PlaceholderTxtB = new System.Windows.Forms.TextBox();
      this.button1 = new System.Windows.Forms.Button();
      this.SuspendLayout();
      //
      // PlaceholderTxtB
      //
      this.PlaceholderTxtB.Location = new System.Drawing.Point(12, 12);
      this.PlaceholderTxtB.Name = "PlaceholderTxtB";
      this.PlaceholderTxtB.Size = new System.Drawing.Size(188, 20);
      this.PlaceholderTxtB.TabIndex = 0;
      //
      // Create a `button1` button to lose focus from the `PlaceholderTxtB` textbox
      //
      this.button1.Location = new System.Drawing.Point(57, 39);
      this.button1.Name = "button1";
      this.button1.Size = new System.Drawing.Size(75, 23);
      this.button1.TabIndex = 1;
      this.button1.Text = "Focus";
      this.button1.UseVisualStyleBackColor = true;
      //
      // Form1
      //
      this.ClientSize = new System.Drawing.Size(284, 261);
      this.Controls.Add(this.button1);
      this.Controls.Add(this.PlaceholderTxtB);
      this.Name = "Form1";
      this.ResumeLayout(false);
      this.PerformLayout();
    }

#endregion

    private System.Windows.Forms.TextBox PlaceholderTxtB;
    private System.Windows.Forms.Button button1;
  }
}

Form1.cs

// `Form1.cs` code to add a placeholder text to `PlaceholderTxtB` textbox

using System;
using System.Drawing;
using System.Windows.Forms;

namespace TextboxPlaceholder {

  public partial class Form1 : Form {
    string ph = "Type your user name here...";

    public Form1() {
      InitializeComponent();
      PlaceholderTxtB.GotFocus += RemoveText;
      PlaceholderTxtB.LostFocus += AddText;
    }

    private void Form1_Load(object sender, EventArgs e) {}
    public void RemoveText(object sender, EventArgs e) {
      if (PlaceholderTxtB.Text == ph)
        PlaceholderTxtB.Text = "";
    }
    public void AddText(object sender, EventArgs e) {
      if (String.IsNullOrWhiteSpace(PlaceholderTxtB.Text)) {
        PlaceholderTxtB.ForeColor = Color.Gray;
        PlaceholderTxtB.Text = ph;
      }
    }
  }
}

Form1 加载事件包含 InitializeComponent() 方法,该方法包含创建 PlaceholderTxtB 文本框的代码。在 Form1.cs 中,创建一个文本框的 .GotFocus.LostFocus 事件。

每当 PlaceholderTxtB 文本框获得焦点时,占位符文本将被删除。但是,当文本框失去用户焦点并保持为空时,占位符文本将重新出现。


在 Visual Studio IDE 中使用 EnterLeave 焦点事件将占位符文本添加到 C# 中的文本框

在 Visual Studio 中,表单的每个组件都有事件。对于文本框,你可以在 C# 项目表单的 Properties 下找到 Focus 事件。

使用 EnterLeave 事件为你的文本框创建一个占位符。

// `Form1.cs` code for `Enter Focus` and `Leave Focus` events to add a placeholder text to a
// `textBox1` textbox

string phd = "Password@123";

private void Enter_Focus(object sender, EventArgs e) {
  // textBox1.ForeColor = Color.Gray;
  if (textBox1.Text == phd)
    textBox1.Text = "";
}

private void Leave_Focus(object sender, EventArgs e) {
  textBox1.ForeColor = Color.Gray;
  if (textBox1.Text == "")
    textBox1.Text = phd;
}

textBox1.Text = phd 是输入为空时显示的占位符文本,并且用户失去文本框的焦点以建议可能的值。文本框的 Enter_FocusLeave_Focus 事件获取或设置控件没有文本且没有焦点时显示的占位符文本。


在 Visual Studio 中安装 Bunifu UI 以在 C# 项目中添加带有占位符的文本框

使用 NuGet 轻松安装和激活 Bunifu UI。在 Visual Studio IDE 中,NuGet 提供了一种更快、更轻松的无缝安装、激活和部署应用程序的方法。

要通过 NuGet Package Manager Console 安装 Bunifu UI,请运行:

Install-Package Bunifu.UI.WinForms

在你的 C# 项目中,转到工具并通过访问 NuGet 包管理器单击管理 NuGet 包以获取解决方案...。之后,你将看到 NuGet - 解决方案选项卡,导航其浏览部分并搜索 Bunifu

你将在搜索结果中找到 Bunifu.UI.WinForms 包并可以安装它。将其添加到你的 C# 项目以在 工具栏 选项卡中查看其控件列表。

它提供了一个带有预定义文本占位符的文本框。在 C# Visual Studio 项目的 Toolbox 中找到 BunifuTextBox,并将其拖到你的表单上。

通过修改其属性对其进行自定义,你将拥有一个带有占位符文本的文本框。

在本教程中,你学习了在文本框的文本区域中添加占位符文本的三种不同方法,以便为用户提供更清晰的界面。但是,如果没有其他任何东西标记你的文本框,消失的占位符可能会让你感到困惑。

幸运的是,使用本教程中的解决方案,占位符文本会一直保留到用户开始输入文本。内联占位符标识要在文本框中输入的信息,从而限制其可访问性。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 C# 中获取组合框的选定值

发布时间:2024/01/20 浏览次数:151 分类:编程语言

本教程展示了如何在 C# 中获取 ComboBox 的选定值。在本教程中,你将学习在 C# 中获取 ComboBox 的选定文本和值的不同方法。获取 ComboBox 控件的选定值的最常用方法是使用 C# 在按钮单击事件中获取

在 C# 中创建一个 UDP 服务器

发布时间:2024/01/20 浏览次数:158 分类:编程语言

在本文中,我们将学习如何在 C# 中创建 UDP 服务器。本文将展示如何在 C# 中创建一个简单的 UDP 服务器。在 C# 中创建一个 UDP 服务器

C# 中的 LINQ 分组

发布时间:2024/01/20 浏览次数:51 分类:编程语言

LINQ 中的 group by 用于按 C# 中的某个公共值对对象序列进行分组 C# 中的 LINQ 分组 LINQ 将类似 SQL 的查询功能与 C# 中的数据结构集成在一起。

使用 C# 在 LINQ 查询中按多列分组

发布时间:2024/01/20 浏览次数:167 分类:编程语言

这是一篇关于 LINQ 查询的使用以及我们如何使用 LINQ 查询按列分组的文章。本文简要介绍了使用 C# 进行的 LINQ 查询。此外,它还讨论了如何使用 LINQ 查询按多列对结果进行分组。

在 C# 中捕获多个异常

发布时间:2024/01/20 浏览次数:135 分类:编程语言

有两种主要方法可用于捕获 C# 中的多个异常,即 Exception 类和 catch 子句中的 if 语句。使用 C# 中的 Exception 类捕获多个异常 Exception 类用于表示 C# 中的一般异常。

C# 中为无效参数或参数引发的异常类型

发布时间:2024/01/20 浏览次数:71 分类:编程语言

本教程将教你如何在 C# 中为无效参数或参数抛出不同类型的异常。异常提供有关 C# 程序中的运行时错误或预期不会发生或违反系统/应用程序约束的条件的信息。在本教程中,你将学习与无效参

C# 中的异常列表

发布时间:2024/01/20 浏览次数:128 分类:编程语言

我们将查看本文中可能引发的 C# 异常。System Exception 类是 C# 编程语言中预定义的异常类,可用于编程。选择代码中可能出现的异常并将其插入到适当的 catch 块中。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便