本文概述
- A.使用NumericUpDown控件
- B.带有真实的文本框
A.使用NumericUpDown控件 如果要创建仅接受数字的输入, 则需要考虑的第一件事是NumericUpDown控件。此控件表示Windows旋转框(也称为上下控件), 仅显示数字值。
你只需在” 所有Windows窗体” 组件中的” 工具箱” 中拖放此控件, 即可:
文章图片
或者, 你可以使用代码动态添加它:
// Create a new numericupdown controlNumericUpDown numbox = new NumericUpDown();
// Some location on the formnumbox.Location = new Point(10, 50);
numbox.Visible = true;
// Append to the formControls.Add(numbox);
要检索其值, 你可以简单地访问控件的Value属性, 例如:
// Retrieve numeric up down valuedecimal value = http://www.srcmini.com/numericUpDown1.Value;
// Show in an alertMessageBox.Show(value.ToString());
请注意, 该值以十进制类型返回, 因此你可以将其格式化为整数, 字符串或任何你需要的格式。此字段本身不允许包含非数字字符。
B.带有真实的文本框 如果由于某种原因而无法使用NumericUpDown控件, 例如使用仅提供文本框的UI框架, 则仍可以通过正确处理其KeyPress事件来过滤输入。首先, 你需要通过在Visual Studio中选择文本框并在” 属性” 工具箱(VS的右下角)中自动添加事件, 从而在输入的KeyPress事件中添加函数, 然后选择” 事件” 选项卡并双击KeyPress选项:
文章图片
【如何在Winforms C#中仅允许数字出现在文本框中】这将自动在你的类上添加KeyPress函数, 该函数将为空, 然后你需要使用以下代码对其进行修改, 以防止输入非数字字符:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e){// Verify that the pressed key isn't CTRL or any non-numeric digitif (!char.IsControl(e.KeyChar) &
&
!char.IsDigit(e.KeyChar) &
&
(e.KeyChar != '.')){e.Handled = true;
}// If you want, you can allow decimal (float) numbersif ((e.KeyChar == '.') &
&
((sender as TextBox).Text.IndexOf('.') >
-1)){e.Handled = true;
}}
要检索其值, 只需使用所需的类型将字符串转换为数字:
string textboxValue = http://www.srcmini.com/textBox1.Text;
// Retrieve as decimaldecimal valueDec = decimal.Parse(textboxValue);
// Retrieve as integerint valueInt = Int32.Parse(textboxValue);
编码愉快!
推荐阅读
- 使用Symfony2和Doctrine增强数据库处理的5条简单技巧
- 如何在Symfony 3中检索信息和任何加密货币(比特币,以太坊)的值
- 如何在Symfony 3中将FWUserBundle与HWIOAuthBundle一起配置和使用(社交登录)
- 如何在C#中从Winforms应用程序打印PDF
- 如何在Symfony 2和3中使用php创建Excel文件
- 如何在Symfony 3中使用PHP在服务器端突出显示代码
- Android - 带有抽屉菜单的活动标题
- 包括web whatsapp自己的网站
- Objective-C Mapview在IPA上崩溃(appstore版本)Xcode 9运行良好[重复]