C# winfrom限制Textbox文本输入

一、限制输入为数字

当用户按下某个按键时,会触发keyPress事件,在该事件里对输出的字符进行判断

首先添加事件:
在这里插入图片描述

	//限制输入数字
	private void LimitInputNumber(object sender, KeyPressEventArgs e)
	{
		if(!char.IsNumber(e.KeyChar) && e.KeyChar!=(char)8)
		{
			e.Handled = true;
		}
	}

这里事件有两个参数object senderKeyPressEventArgs e

sender可以理解为发送这个事件的源对象,比如我有TextBox1TextBox2两个控件,当我在第一个控件中输入时,sender就是TextBox1,在第二个控件输入时,sender就是TexeBox2
在使用时要转换一下:
TextBox tb = sender as TextBox;

e可以理解为这个事件带的消息。查看代码发现这个参数只有两个属性:

		// 摘要:
		//     获取或设置与按下的键对应的字符。
		//
		// 返回结果:
		//     撰写的 ASCII 字符。 例如,如果用户按下 Shift + K,则该属性返回一个大写的 K。
		public char KeyChar { get; set; }
		//
		// 摘要:
		//     获取或设置一个值,该值指示是否 System.Windows.Forms.Control.KeyPress 事件进行处理。
		//
		// 返回结果:
		//     true 如果处理该事件;否则为 false。
		public bool Handled { get; set; }

所以只要判断keychar输入的字符是否是数字,不是的话将Handled设为true即可,该事件到此为止,不会继续向下层传递。

二、限制输入大小

大部分时候对数字输入的范围有限制,一种超过限制值不允许输入,另一种是允许输入,失去焦点时自动变为最大/最小值。

这里提供一种方法,当检测到文本框为空时,自动填充最小值。

用到的是控件的Leave事件
在这里插入图片描述

private void LimitInputNumber(object sender, EventArgs e)
{
	TextBox tb = sender as TextBox;
	if(tb.Text == "")
	{
		tb.Text = "0";
	}
}
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值