在 C# 中将占位符添加到文本框
本教程将教授在 C# 中向文本框添加占位符的三种方法。由于占位符应被视为提示,因此它们不能替代 labels
或 title
。
在 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 中使用 Enter
和 Leave
焦点事件将占位符文本添加到 C#
中的文本框
在 Visual Studio 中,表单的每个组件都有事件。对于文本框,你可以在 C# 项目表单的 Properties
下找到 Focus
事件。
使用 Enter
和 Leave
事件为你的文本框创建一个占位符。
// `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_Focus
和 Leave_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
,并将其拖到你的表单上。
通过修改其属性对其进行自定义,你将拥有一个带有占位符文本的文本框。
在本教程中,你学习了在文本框的文本区域中添加占位符文本的三种不同方法,以便为用户提供更清晰的界面。但是,如果没有其他任何东西标记你的文本框,消失的占位符可能会让你感到困惑。
幸运的是,使用本教程中的解决方案,占位符文本会一直保留到用户开始输入文本。内联占位符标识要在文本框中输入的信息,从而限制其可访问性。
相关文章
在 C# 中将 List<string>转换为字符串
发布时间:2024/03/16 浏览次数:198 分类:编程语言
-
在 C# 中,有两种主要方法可用于将 List
转换为字符串变量,Linq 方法和 String.Join()函数。
在 C# 中将 List<string>转换为字符串
发布时间:2024/03/16 浏览次数:171 分类:编程语言
-
在 C# 中,有两种主要方法可用于将 List
转换为字符串变量,Linq 方法和 String.Join()函数。
在 C# 中将 List<string>转换为字符串
发布时间:2024/03/16 浏览次数:187 分类:编程语言
-
在 C# 中,有两种主要方法可用于将 List
转换为字符串变量,Linq 方法和 String.Join()函数。
在 C# 中发出 HTTP POST Web 请求
发布时间:2024/02/04 浏览次数:131 分类:编程语言
-
在 C# 中,可以使用 3 种主要方法来发出 HTTP POST Web 请求:WebClient 类,HttpWebRequest 类和 HttpClient 类。本教程将讨论在 C# 中发出 HTTP POST Web 请求的方法。使用 C# 中的 WebClient 类发出 HTTP POST Web 请求
在 C# 中运行命令提示符命令
发布时间:2024/02/04 浏览次数:130 分类:编程语言
-
Process 类可用于在 C# 中运行命令提示符命令。在 C# 中使用 Process.Start() 函数运行命令提示符命令
在 C# 中调整图像大小
发布时间:2024/02/04 浏览次数:203 分类:编程语言
-
有两种主要方法可用于在 C# 中调整图像的大小,Bitmap 类构造函数和 graphics.DrawImage()函数。在本教程中,我们将讨论在C#中调整图像大小的方法。我们将带您完成整个过程,从加载原始图像到保
在 C# 中下载图片
发布时间:2024/02/04 浏览次数:138 分类:编程语言
-
有 3 种主要方法可用于下载 C# 中的图片,WebClient.DownloadFile()函数,Bitmap 类和 Image.FromStream()函数。在 C# 中使用 WebClient 类下载图片 WebClient 类提供了用于向 C# 中的 URL 发送数据和从 URL 接收数据
在 C# 中使用秒表
发布时间:2024/02/04 浏览次数:139 分类:编程语言
-
我们可以使用 Stopwatch 类来计算 C# 中的经过时间。使用 C# 中的秒表类计算经过时间 Stopwatch 类在 C# 中准确测量经过的时间。
在 C# 中获取可执行路径
发布时间:2024/02/04 浏览次数:200 分类:编程语言
-
有 3 种主要方法可用于获取 C# 中程序的可执行路径,即 Assembly 类,AppDomain 类和 Path 类。本教程将介绍获取 C# 代码的可执行路径的方法。使用 C# 中的 Assembly 类获取可执行路径