A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 何智杰 中级黑马   /  2012-3-26 16:06  /  2278 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

学习WinFrom时对所有文本框进行非空验证的一点总结:

foreach (var item in Controls)//遍历所有控件
            {
                if (item is TextBox)//判断是否是TextBox
                {
                    TextBox text = item as TextBox;
                    if (string.IsNullOrEmpty(text.Text))//判断是否是空
                    {
                        MessageBox.Show("此位置不能为空", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        text.Focus();//获得焦点
                        return;//跳出
                    }
                }
            }

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

3 个回复

倒序浏览
学习了,实用中.
回复 使用道具 举报
其实可以封装到一个方法里面,当Textbox失去焦点的时候出发。这样省去了遍历的时间。而且当时用户就回去填写。免得用户自己去找光标在哪。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
你可以将需要验证的控件放在一个容器控件上面。通过遍历容器集合,可以减少不必要的判断。
你在显示提示消息时有点不清楚,你可以给每个要验证的控件设置它的tag属性保存当前是什么TextBox。
例如提示用户名文本框  MessageBox.Show(txtUserName.tag+"不能为空!");这样是不是让用户体验更好一些。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马