今日问题:
1. 如何检验输入框的值得类型?比如只能输入数字,输入为空或者非数字,甚至不是条件范围内的数字,都过不去,需要重新检验输入是否正确?
2. 这样的条件是每次输入框都要写一遍所有的程序,能不能写个公共的函数直接调用?
3. picturebox和imagelist的双剑合璧;
问题1.
方法1 :用keypress判断keychar的值 网上找到解决办法(原帖地址:http://blog.csdn.net/liujun198773/article/details/8486169):
keypress的问题解决,在输入框的时候,只识别数字,BACKSPACE,小数点的按键,其他一概不能输入。
数字0~9的所对应的keychar为48~57,小数点是46,Backspace是8.
于是:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
try
{
int a = (int)e.KeyChar;
if (((a < 48 || a> 57 ) && a != 8)&& a !=46)
{
e.Handled = true;
}
}
catch(Exception)
{
}
附加:-----不一定要keychar,可以直接用数字符号。
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (((e.KeyChar < '0' || e.KeyChar > '9') && e.KeyChar != '.') && e.KeyChar != '\b')
{
e.Handled = true;
MessageBox.Show("请输入正确的数据格式");
}
}
方法2:通过类型转换,try catch
//来源:http://zhidao.baidu.com/link?url=yLzUJon6Bxj1L_EhAisS_PUQksmRn88Rjn2hp5YZOnxmiOD_Yp2IhW_hMibTq1rL7vOdlRXmj4N2UA1wm1GPlq
private void textBox1_Leave(object sender, EventArgs e)
{
try
{
int temp = int.Parse(textBox1.Text);
}
catch (Exception)
{
MessageBox.Show("请输入正确的数字");
}
}
附加相关知识:
1. keypress ,keydown,keyup
详细来源:http://blog.csdn.net/jadeflute/article/details/5551751http://www.jb51.net/article/52321.htm
2. int parse,类型的强制转换
详细参考:http://www.jb51.net/article/52321.htm
3. try.catch,finally的使用 。
来源:http://zhidao.baidu.com/link?url=qjPBzD7dyPyl0OeT50J07DG1SFlkOkCcusehXnkcDh9SmvfIOc_MplE1Lud8xs6-2-1yfOX4mpINe75k7Cleoa
try {//容易产生异常的代码}
catch{产生异常之后的操作,抛出异常等}
finally {无论异常,最后都要做的事情}