关于文本框不能输入字母的问题

wjxiaojie 2010-01-02 10:40:37
期末考试项目,,做QQ可是现在一个文本框的问题吧我难住了 。。怎么办啊 ??
只能输入1、2、3、4、5、6、7、8、9这几个数字 怎么搞啊
...全文
304 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
erynkyo 2010-01-03
  • 打赏
  • 举报
回复
简单的方法用正则,复杂的方法大家都说了,用ASC码+事件的组合
nixiang12 2010-01-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 spmzfz 的回复:]
C#2008 SP1 MSDN :
C# code//下面的示例确定用户是否按下了非数字键,如果是,则通过使用 Handled 属性取消 KeyPress 事件。privatebool nonNumberEntered=false;privatevoid textBox1_KeyDown(object sender, KeyEventArgs e)
{
nonNumberEntered=false;if ((e.KeyCode< Keys.D0)|| (e.KeyCode> Keys.D9&& e.KeyCode< Keys.NumPad0)|| (e.KeyCode> Keys.NumPad9))
{if (e.KeyCode!= Keys.Back)
{
nonNumberEntered=true;
}
}
}privatevoid textBox1_KeyPress(object sender, KeyPressEventArgs e)
{if (nonNumberEntered)
{
e.Handled=true;
}
}
[/Quote]
这段代码 还能输入 !@#$之类的符号
nixiang12 2010-01-03
  • 打赏
  • 举报
回复

private void txth_KeyPress(object sender, KeyPressEventArgs e)
{
if (!(Char.IsNumber(e.KeyChar) || e.KeyChar == '\b'))
{
e.Handled = true;
}
}


在textbox中找到KeyPress事件 写入如上代码就行了
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lxcnn 的回复:]
考试题目都可以透露的?

即然是考试题,只提供一下思路,代码就不给了
KeyPress事件里判断ASCII码


[/Quote]
这个就可以了。。。
exiori 2010-01-03
  • 打赏
  • 举报
回复
chxg99 2010-01-03
  • 打赏
  • 举报
回复
正则表达式!
在keypress中判断输入的字符即可。
private static bool IsNumeric(string str)
{
System.Text.RegularExpressions.Regex reg1
= new System.Text.RegularExpressions.Regex(@"^[-]?\d+[.]?\d*$");
return reg1.IsMatch(str);
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!Char.IsNumber(e.KeyChar) & e.KeyChar != Convert.ToChar(Keys.Back) & e.KeyChar != '.')
{
e.Handled = true;
}
}
duck530 2010-01-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wuyq11 的回复:]
<asp:TextBox ID="txt" runat="server"  MaxLength="50" Width="130px"> </asp:TextBox>

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="txt" ErrorMessage="只能为数字" validationexpression=""^[0-9]+$"> </asp:RegularExpressionValidator>
[/Quote]
正则表达式还可以是[0,9]{6,}
\d{6,}都可以呀
xiaofeng861020 2010-01-03
  • 打赏
  • 举报
回复
baidu
spmzfz 2010-01-03
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 nixiang12 的回复:]
引用 3 楼 spmzfz 的回复:
C#2008 SP1 MSDN :
C# code//下面的示例确定用户是否按下了非数字键,如果是,则通过使用 Handled 属性取消 KeyPress 事件。。。。

这段代码 还能输入 !@#$之类的符号
[/Quote]

那就附加一些代码吧:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == '~' | e.KeyChar == '!' | e.KeyChar == '@' | e.KeyChar == '#')
{
e.Handled = true;
}
}
呵呵。
旧日的某人 2010-01-03
  • 打赏
  • 举报
回复
KeyPress里我记不清了
rockyvan 2010-01-02
  • 打赏
  • 举报
回复
学习
wuyq11 2010-01-02
  • 打赏
  • 举报
回复
<asp:textbox class="Text"
onkeypress="if (event.keyCode < 48 || event.keyCode >57) event.returnValue = false;" id="txt" MaxLength="12"></asp:textbox>

wuyq11 2010-01-02
  • 打赏
  • 举报
回复
正则表达式
<asp:TextBox ID="txt" runat="server" MaxLength="50" Width="130px"> </asp:TextBox>

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="txt" ErrorMessage="只能为数字" validationexpression=""^[0-9]+$"> </asp:RegularExpressionValidator>
spmzfz 2010-01-02
  • 打赏
  • 举报
回复
C#2008 SP1 MSDN :

//下面的示例确定用户是否按下了非数字键,如果是,则通过使用 Handled 属性取消 KeyPress 事件。

private bool nonNumberEntered = false;
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
nonNumberEntered = false;
if ((e.KeyCode < Keys.D0) || (e.KeyCode > Keys.D9 && e.KeyCode < Keys.NumPad0) || (e.KeyCode > Keys.NumPad9))
{
if (e.KeyCode != Keys.Back)
{
nonNumberEntered = true;
}
}
}

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (nonNumberEntered)
{
e.Handled = true;
}
}

-过客- 2010-01-02
  • 打赏
  • 举报
回复
考试题目都可以透露的?

即然是考试题,只提供一下思路,代码就不给了
KeyPress事件里判断ASCII码

wuyi8808 2010-01-02
  • 打赏
  • 举报
回复
MaskedTextBox

111,120

社区成员

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

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

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