WinForm:一个登陆窗体引发的问题系列(六):Textbox的记忆功能

本来文章到这里似乎都可以结束了,但是在最后又萌生了一个念头,为了更提高软件的交互性和人性化,我在这里继续添加一个软件记忆功能。

实现的效果图,大致如下:

其实使用软件功能主要要用到textbox的三个属性AutoCompleteCustomSource、AutoCompleteSource、AutoCompleteMode,具体相关属性可参阅MSDN文档:http://msdn.microsoft.com/zh-cn/vstudio/system.windows.forms.textbox.autocompletesource.aspx

OK,设置 txtName的AutoCompleteMode属性为SuggestAppend

                            AutoCompleteSource属性为CustomSource

给代码做两个地方的修改

一个是(主要是读历史记录)

   if  (reg.IsMatch( this .txtName.Text))
                {
                    e.Handled 
=   false ;

                    
if  (File.Exists( @" c:\1.txt " )) // 路径和文件类型大家自己设置
                    {
                        StreamReader sr 
=   new  StreamReader( @" c:\1.txt " , true );

                        
string  str  =  sr.ReadLine();

                        
while  (str  !=   null ) // 判断不为空行
                        {
                            
if  ( ! this .txtName.AutoCompleteCustomSource.Contains(str)) // 是否包含集合里
                            {
                                
this .txtName.AutoCompleteCustomSource.Add(str); // 不包含添加
                            }
                            str 
=  sr.ReadLine();
                        }
                        sr.Close();
                    }                  
                }

 

另外一处(存入历史记录)

                 if  (Reader.HasRows) // 判断是否有查询到对象的数据
                {
                    
if  (File.Exists( @" c:\1.txt " )) // 判断文件存在
                    {
                        
if  ( ! this .txtName.AutoCompleteCustomSource.Contains( this .txtName.Text)) // 判断记录是否存在
                        {
                            StreamWriter sw 
=   new  StreamWriter( @" c:\1.txt " , true ); // true参数不可少,否则会覆盖以前存入的记录

                            sw.WriteLine(
this .txtName.Text.Trim()); // 存入记录

                            sw.Close();
// 关闭文件流

                            
if  ( ! this .txtName.AutoCompleteCustomSource.Contains( this .txtName.Text))
                            {
                                
this .txtName.AutoCompleteCustomSource.Add( this .txtName.Text);
                            }
                        }
                    }
                    
this .DialogResult  =  DialogResult.OK;
                }

 

为了方便以后使用,你完全可以写成自己的控件,具体方法略~

 

转载于:https://www.cnblogs.com/Jason_z/archive/2009/10/21/1587586.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值