说明:
一个panel控件中有很多textbox,textbox中只允许输入数字问题:
怎样遍历textbox验证其输入的合法性?或者有其它的什么好办法?
一个panel控件中有很多textbox,textbox中只允许输入数字问题:
怎样遍历textbox验证其输入的合法性?或者有其它的什么好办法?
解决方案 »
- C#客户端发帖功能,怎样动态添加panel
- C#读取注册表时路径中同时含有单双反斜杠
- 生成对象时,编译不报错,但是生成的对象系统不识别,无法调用类方法
- 求一套图标,用于CRM程序设计
- DetailsView更新完之后跳转不回"编辑"
- 请问如果我想将dataGridView中的行全部删除?
- 100分求勾一个分页管理or分段管理or虚拟管理(算法也行)..UP有分
- 请教了
- 求一ASP.NET_C#可用的通用缓存类
- 请教关于水晶报表二个问题:1使用CrystalReportViewer调用.rpt文件打印,但是有时鼠标移动CrystalReportViewer查看报表时就程序莫名其妙
- 条码打印的问题,请帮忙看看
- c# HttpWebRequest的问题
using system.Linq
foreach (Control item in this.panel1.Controls.OfType<TextBox>())
{
if(item.Text)//判断是否为数字
}第二种: /// <summary>
/// 限制输入数字以外的字符
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void textbox_KeyPress(object sender, KeyPressEventArgs e)
{
if (((int)e.KeyChar < 48 || (int)e.KeyChar > 57) && e.KeyChar != 8)
{
e.Handled = true;
}
}
TextBox tb;
foreach (var ctl in panel1.Controls)
{
if (ctl.GetType().ToString() == "System.Windows.Forms.TextBox")
{
tb = ctl as TextBox;
//检核该栏位值是否为数字
//....
}
}另外也可以考虑给每个TextBox加入TextChanged事件来检核值是否为数字
public login()
{
InitializeComponent(); foreach (Control item in this.panel1.Controls)
{
if (item is TextBox)
{
item.KeyPress += new System.Windows.Forms.KeyPressEventHandler(textbox_KeyPress);
}
}
}然后在类内加1楼第二种方法的事件private void textbox_KeyPress(object sender, KeyPressEventArgs e)
{
if (((int)e.KeyChar < 48 || (int)e.KeyChar > 57) && e.KeyChar != 8)
{
e.Handled = true;
}
}
保存的时候,,
还有种就是做个用户控件,
加入这个事件private void textbox_KeyPress(object sender, KeyPressEventArgs e)
{
if (((int)e.KeyChar < 48 || (int)e.KeyChar > 57) && e.KeyChar != 8)
{
e.Handled = true;
}
}
panel1.controls 这个可以得到panel1中所有的控件的数组.然后你遍历这个数组得到所有的textbox控件,然后获取每个textbox的text用下面这个正则表达式判断就ok了
Regex regex=new Regex("^[0-9]*$");
if(regex.isMatch(Textbox.text))
{
//这就是存在数字的情况
}
你在网上查一下判断数字的正则表达式很多,就两行代码就能判断
否则的话,版主的方案更合理。
补充一问:
textbox中输入3个数字后焦点自动切换到下一个textbox,如何遍历?