C#实现:限制文本框只输入double类型数值
4星 · 超过85%的资源 需积分: 50 5 浏览量
更新于2024-09-13
收藏 2KB TXT 举报
"限制文本框只能输入double类型的代码案例!"
在Windows Forms应用程序中,我们经常需要确保用户在文本框(TextBox)中输入的数据是特定类型的,例如double类型,以进行数学计算或其他数值处理。以下是一个C#代码示例,演示如何实现这个功能。
首先,我们需要在`textBox1_KeyPress`事件处理器中进行输入验证。这个事件会在用户每次按下键盘键时触发。在这个事件中,我们检查用户输入的字符是否合法。以下代码展示了如何实现这一逻辑:
```csharp
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
// 允许退格键(Backspace)和小数点(.)
if ((e.KeyChar != 0x08) && (e.KeyChar != 46) &&
// 检查字符是否在0-9之间
(e.KeyChar < 0x30 || e.KeyChar > 0x39))
{
// 不合法的字符,阻止其输入并显示警告消息
e.KeyChar = (char)0;
MessageBox.Show("只能输入数字和小数点!");
}
// 处理小数点的情况,确保只允许输入一个
try
{
string content = ((TextBox)sender).Text;
if (content != "")
{
if ((e.KeyChar.ToString() == "."))
{
// 检查当前文本是否已包含小数点
string num = content + ".";
Convert.ToDouble(num);
}
}
}
catch
{
// 如果转换失败,说明已经有一个小数点了,阻止再次输入
e.KeyChar = (char)0;
}
}
```
这段代码首先允许用户输入数字和退格键,但不允许其他字符。接着,它检查用户是否尝试输入第二个小数点。如果文本框中已经有一个小数点,或者用户尝试在已经包含小数点的文本后添加更多小数点,那么将阻止输入,并不显示小数点。
同时,我们还需要处理用户点击“计算”按钮(假设为`button1_Click`事件)的情况,确保两个文本框都有有效输入:
```csharp
private void button1_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(this.textBox1.Text))
{
MessageBox.Show("第一个文本框不能为空!");
}
else if (string.IsNullOrEmpty(this.textBox2.Text))
{
MessageBox.Show("第二个文本框不能为空!");
}
else
{
double a = Convert.ToDouble(this.textBox1.Text);
double b = Convert.ToDouble(this.textBox2.Text);
MessageBox.Show("结果:" + (a + b));
}
}
```
在`button1_Click`事件中,我们首先检查文本框1和文本框2是否有值,如果没有值,则显示相应的错误消息。如果两个文本框都有值,我们将它们的内容转换为double类型并执行加法操作,然后显示结果。
通过这种方式,我们可以确保用户在文本框中输入的是有效的double类型数值,从而避免程序在处理数据时可能出现的异常。在实际项目中,你可能还需要添加更复杂的验证,比如限制输入的最大长度、最小值或最大值,以满足具体需求。
2024-10-09 上传
2021-11-21 上传
2010-07-24 上传
2011-07-24 上传
2013-10-10 上传
古城奇葩
- 粉丝: 0
- 资源: 56
最新资源
- PHP会议室预约管理平台,用于会议预定
- 行业分类-设备装置-多媒体教育平台的实现方法及多媒体教育平台系统.zip
- VB+sql火车站售票管理系统(论文+系统+答辩PPT+需求分析).rar
- Nekopoi-desktop-app:只是Nekopoi的桌面应用程序
- 基于SpringBoot的智慧点餐系统源码+数据库(毕业设计).zip
- elevation_pthon_DEM_
- 岩土工程施工组织设计-路基石灰改良土填筑施工组织设计
- Python库 | hvcc-0.5.0.tar.gz
- db4o-plugin:db4o-IntelliJ IDEA插件
- vb企业档案管理系统设计(论文+源代码).rar
- Deep-Compression-Compressing-Deep-Neural-Networks-with-Pruning-Trained-Quantization-and-Huffman:这是https的pytorch实现
- PhilanthropyConnectBackend
- rdpwrap-master_RDp_delphi_RDPWrap_rdpwrap.ini_zip_
- 园林绿化景观施工组织设计-上海某滨河绿地施工组织设计
- CompHoundRvt:Revit加载项以填充基于CompHound云的通用组件和资产使用情况分析,报告和可视化服务器
- VB+ACCESS网络计时管理系统设计(源代码+系统).rar