c#的textbox
时间: 2025-01-02 08:33:14 浏览: 7
### C# 中 TextBox 控件的使用方法
在 C# Windows Forms 应用程序中,`TextBox` 是最常用的控件之一,用于接收用户的文本输入。以下是 `TextBox` 的基本属性和常用功能。
#### 基本属性设置
可以轻松配置 `TextBox` 的多种属性以满足不同的需求:
- **Text**: 设置或获取当前显示的文本。
- **Multiline**: 如果希望支持多行输入,则将其设为 true;默认情况下它是 false 表示单行模式。
- **MaxLength**: 定义用户能输入的最大字符数,默认是没有限制 (-1)。
- **ReadOnly**: 当此属性被设定为 true 时,不允许编辑内容但仍可选中文本复制粘贴操作。
- **PasswordChar**: 将特定字符作为密码掩码符替代实际键入的内容,常用来创建安全登录界面中的密码框[^1]。
```csharp
// 创建一个新的 TextBox 实例并初始化部分属性
var textBox = new System.Windows.Forms.TextBox();
textBox.Text = "初始文本";
textBox.Multiline = true;
textBox.MaxLength = 50; // 用户最多只能输入50个字符
textBox.ReadOnly = false;
textBox.PasswordChar = '*'; // 输入会被'*'号代替显示
```
#### 处理键盘事件过滤非法字符输入
为了确保仅接受数字类型的输入,在处理 KeyPress 或 PreviewKeyDown 等事件时检查按键值是否属于合法范围内的数值即可阻止其他类型的数据录入。
```csharp
private void textBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar))
{
e.Handled = true; // 阻止非控制键和非数字字符
}
}
```
#### 自定义外观样式如底部加下划线效果
如果想要给普通的 `TextBox` 添加额外视觉装饰比如底线,可以通过继承原有组件来自定义绘图行为完成此类定制化工作。
```csharp
protected override void OnPaint(PaintEventArgs pevent)
{
base.OnPaint(pevent);
using (Pen pen = new Pen(Color.Black, 2)) // 黑色粗细为2像素线条画笔对象
{
int yPosition = this.ClientSize.Height - 1; // 获取客户区高度减去一得到y坐标位置
pevent.Graphics.DrawLine(pen, 0, yPosition, this.ClientSize.Width, yPosition); // 绘制一条贯穿整个宽度水平直线
}
}
```
阅读全文