| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 428 人关注过本帖
标题:指点一下
只看楼主 加入收藏
mipeng
Rank: 2
等 级:论坛游民
帖 子:58
专家分:13
注 册:2009-4-4
结帖率:87.5%
收藏
已结贴  问题点数:20 回复次数:2 
指点一下
我用一个listbox和一个textbox组合实现边输入便提示的效果
我想问问我在textbox里的写代码合理吗,思路对吗
请指点一下


private void textBox1_TextChanged(object sender, EventArgs e)
        {
            //首先,获取textBox1的内容
            string str = textBox1.Text.Trim().ToString();
            
            //判断输入的内容(目的要排除在第一位输入空格的情况)
            if (textBox1.Text.Trim ().ToString () == "")
            {
                //如果一直输入空格将什么反应也没有(也可给出提示)
                listBox1.Visible = false;
                label.Visible = false;
                button5.Enabled = false;
            }
            //排除第一位为空格后,就要开始判断输入的字符是不是0-9这十个数字之内的
            else
            {
                //这个正则表达式判断的是:任意的一个1位到8位的字符串,是不是数字型的字符串,也就是说是不是由0-9组成的
                string ss = @"^\d{1,8}$";
                Regex reg = new Regex(ss);
                //进行判断
                if (reg.IsMatch(str))
                {
                    //判断成功后,还要判断输入的位数。学号是8位的
                    //当字符长度少于8位
                    if (textBox1.Text != "" && textBox1.Text.Length < 8)
                    {
                        //这里用的是like的查询方法,也就是虚查询 。例如,查询所有学生中,姓王的学生,肯定会查出来好多人。就是这个意思
                        jC8 jc8 = new jC8();
                        ArrayList list = jc8.xuehaoList(str);
                        listBox1.Items.Clear();
                        listBox1.Visible = true;
                        for (int i = 0; i < list.Count; i++)
                        {
                            listBox1.Items.Add(list[i].ToString());
                        }
                        label.Visible = false;
                        button5.Enabled =false ;
                    }
                    //当字符位数等于8位时,就不再用虚查询了,用那种一般就行了。(虚查询在这里用不了,因为已经到达8位)
                    if (textBox1.Text.Length == 8)
                    {
                        jC8_2_ jc8_2 = new jC8_2_();
                        if (jc8_2.xuehao(str).Trim() != "")
                        {
                            listBox1.Items.Clear();
                            listBox1.Visible = true;
                            listBox1.Items.Add(jc8_2.xuehao(str).Trim());
                            label.Visible = false;
                            label.Text = "输入正确,学号存在。";
                            label.ForeColor = Color.Green ;
                            label.Visible = true;
                            //在输入学号存在时,把这个学号存下来。这部很重要,后面的添加、修改、删除全都要它
                            vip = str;
                           
                            //这个timer1 是为了在8位学号输入正确时,能在1秒后让listBox1隐藏。
                            //我认为这一秒要有,算是给用户一个提示,提示用户,您输的学号在这里(是它)。人性吧 O(∩_∩)O哈哈~
                            timer1.Start();
                           
                            //激活button5,就是那个确定按钮
                            button5 .Enabled =true ;
                        }
                        else
                        {
                            label.Visible = true ;
                            label.ForeColor = Color.Firebrick;
                            label.Text = "输入的学号不存在!";
                            listBox1.Visible = false;
                            button5.Enabled = false;

                        }
                    }
                }
                else
                {
                    listBox1.Visible = false;
                    label.Visible = true;
                    label .Text = "输入的字符不合法!\n不是0-9这十个数字之中。";
                    label.ForeColor = Color.Firebrick;
                    button5.Enabled = false ;
                }
            }

        }
搜索更多相关主题的帖子: private 
2009-08-10 12:54
rindybo
Rank: 2
等 级:论坛游民
帖 子:126
专家分:51
注 册:2007-3-8
收藏
得分:7 
你这样实现太麻烦了 用textbox的AutoCompleteCustomSource,能做到自动下拉的效果(找出关键字相同的) 就想google那样

[ffg,#6CCFF7,#FFFFFF] ←★→┠最┨┠愛┨┠伱┨┠了┨←★→ [/ft]
2009-08-10 16:27
jedypjd
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:9
帖 子:1096
专家分:4969
注 册:2009-7-27
收藏
得分:7 
textbox.AutoCompleteCustomSource=你的数据源

[ 本帖最后由 jedypjd 于 2009-8-10 20:42 编辑 ]

天涯无岁月,歧路有风尘,百年浑似醉,是非一片云
2009-08-10 17:49
快速回复:指点一下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031120 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved