winfrom 判断textbox

azkxysys520 2012-01-11 09:23:27
我想在textbox重判断只允许输入数字和冒号,且第一个不允许为冒号该怎么实现
...全文
168 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
快乐大法师 2012-01-11
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 azkxysys520 的回复:]

引用 7 楼 kkxxllasasas 的回复:
C# code


private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if ((e.KeyChar >= '0' &amp;&amp; e.KeyChar <= '9') || e.KeyChar == 8)
{

……

……
[/Quote]

哪不对了,写在KeyPress事件中。。。
苦苦的潜行者 2012-01-11
  • 打赏
  • 举报
回复
用正则判断一下就行
^\d[:|\d]*$
azkxysys520 2012-01-11
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 kkxxllasasas 的回复:]
C# code


private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if ((e.KeyChar >= '0' && e.KeyChar <= '9') || e.KeyChar == 8)
{

……
[/Quote]

代码不对啊
azkxysys520 2012-01-11
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 nm8222157 的回复:]
引用 3 楼 shiguohui000 的回复:


3楼 2楼的代码太美了 顶
[/Quote]
好吧,我的意思是不让键盘输入除了数字和冒号意外的任何字符,正则表达式不行,我表达有误抱歉
sugarbelle 2012-01-11
  • 打赏
  • 举报
回复
感觉^\d*$|\:不对.
nm8222157 2012-01-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 shiguohui000 的回复:]

[/Quote]
3楼 2楼的代码太美了 顶
MKing0412 2012-01-11
  • 打赏
  • 举报
回复
第一个不能为‘:’???
上面的弄错了
MKing0412 2012-01-11
  • 打赏
  • 举报
回复

private void textBox4_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar==':')
{
e.Handled = true;
}
}

数字字母同样

实现的方式很多
蝶恋花雨 2012-01-11
  • 打赏
  • 举报
回复
测试结果
第一次输入:不可 输入3:可以
蝶恋花雨 2012-01-11
  • 打赏
  • 举报
回复
string s=string.Empty;
if (textBox1.Text != ":")
{
Regex r = new Regex(@"^\d*$|\:");
if (!r.IsMatch(this.textBox1.Text))
{
textBox1.Text = s;//恢复
textBox1.SelectionStart = s.Length;
}
else
s = textBox1.Text;
}
else
{
textBox1.Text=s;
}
快乐大法师 2012-01-11
  • 打赏
  • 举报
回复


private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if ((e.KeyChar >= '0' && e.KeyChar <= '9') || e.KeyChar == 8)
{

e.Handled = false;
}
else if (e.KeyChar == 58)
{
if (textBox1.Text.Length > 0)
{
e.Handled = false;
}
else
{
e.Handled = true;
}
}
else
{
e.Handled = true;
}
}

EnForGrass 2012-01-11
  • 打赏
  • 举报
回复
用正则表达式更方便些,现在验证输入很多时候都会用到正则表达式
Garden290345669 2012-01-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 shiguohui000 的回复:]
Regex r = new Regex(@ "^\d*$|\:");
if (!r.IsMatch(this.textBox1.Text))
{
textBox1.Text=s;//恢复
textBox1.SelectionStart = s.Length;
}
else
s=textBox1.Text;
[/Quote]++++++++++
shighui 2012-01-11
  • 打赏
  • 举报
回复
Regex r = new Regex(@ "^\d*$|\:");
if (!r.IsMatch(this.textBox1.Text))
{
textBox1.Text=s;//恢复
textBox1.SelectionStart = s.Length;
}
else
s=textBox1.Text;
jiuhexuan 2012-01-11
  • 打赏
  • 举报
回复
private void textBox1_TextChanged(object sender, EventArgs e)
{
Regex r = new Regex(@ "^\d*$|\:");
if (!r.IsMatch(this.textBox1.Text))
{
textBox1.Text=s;//恢复
textBox1.SelectionStart = s.Length;
}
else
s=textBox1.Text;

}
火星大能猫 2012-01-11
  • 打赏
  • 举报
回复
正则表达式.
azkxysys520 2012-01-11
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 kkxxllasasas 的回复:]
不会是中文的冒号吧... 换英文的试试
[/Quote]

抱歉我搞错了,谢谢你的解决方案,也谢谢其他人的方案,散分结贴走人
azkxysys520 2012-01-11
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 kkxxllasasas 的回复:]
不会是中文的冒号吧... 换英文的试试
[/Quote]

中文的英文的冒号都树不进去
快乐大法师 2012-01-11
  • 打赏
  • 举报
回复
不会是中文的冒号吧... 换英文的试试
七色鸟 2012-01-11
  • 打赏
  • 举报
回复
先事件,keypress事件,在里面用正则判断。。
加载更多回复(2)

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧