惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Martin Fowler
Martin Fowler
Y
Y Combinator Blog
M
MIT News - Artificial intelligence
The Cloudflare Blog
WordPress大学
WordPress大学
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园 - 司徒正美
小众软件
小众软件
Blog — PlanetScale
Blog — PlanetScale
雷峰网
雷峰网
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
J
Java Code Geeks
云风的 BLOG
云风的 BLOG
C
Check Point Blog
D
DataBreaches.Net
T
The Blog of Author Tim Ferriss
V
V2EX
F
Fortinet All Blogs
B
Blog
大猫的无限游戏
大猫的无限游戏
N
Netflix TechBlog - Medium
B
Blog RSS Feed
A
About on SuperTechFans
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC

博客园 - Frederick

C#多线程网页采集器(Spider) 代朋友招聘VB.NET开发人员(天津) 博客园期刊2006年第三期 3月份期刊延期通知 博客园期刊团队2006年企划 博客园电子期刊06年2月刊 2006年1月第一期下载 博客园电子期刊2005年12月第二期(总第三期) 12月第二期杂志,内部预览 博客圆期刊12月第一期WEB在线阅读版 12月终稿已经定下来了 博客园期刊团队对于方便内部联系的要求。 希望各位编辑踊跃投稿 博客园电子杂志2005年12月第一期 将您的文章投稿到期刊编辑部 请大家评选一下12月首期的封面 12月首期期刊封面预览-感谢Shalala的制作 编辑投稿要求 博客园期刊企化与人员招募(修订版)
Windows Form 2.0 自动完成
Frederick · 2005-11-25 · via 博客园 - Frederick
 

使用过IE的人应该对自动完成并不陌生,它可以帮助使用者快速输入曾经输入过的内容,

图表 1 IE的自动完成

这个是在网页上的过去有人问过,“自动完成在Windows Form 中是否可行?”答案在.NET Framework 1.x 中没有此公能,需要使用者自行开发。在.NET Framework 2.0 中已经内建了此功能,本文介绍.Net Framework 2.0 Windows Form 自动完成。

自动完成属性:

Windows Form 中的TextBoxComboBox…等文字框类的控件支持自动完成属性,通过这些属性的制定,可以指定自动完成功能的不同形式:

AutoCompleteMode属性

       指定自动完成的形式,可以设定NoneSuggestAppendSuggestAppend几种形式。默认值是None,不使用自动完成模式。设定为Append模式时,会在输入后自动将资料来源中的文字加入到方框中。(图2)设定为SuggestAppend模式时,不会自动补齐资料,而是弹出列表供用户选择(图3

图表 2    Append                                                           图表 3SuggestAppend

AutoCompleteSource属性:

设定自动完成资料的来源。可以设定NoneAllSystemSourceAllUrlCustomSourceFileSystemFileSystemDirectoriesFileSystemFileSystemDirectoriesHistoryListRecentlyUsedList等多项。

AutoCompleteCustomSource属性

AutoCompleteSource的属性设置为CustomSource时,可以用此属性自定义自动完成字符串。

自定来源

       为了应付更多非文档或Url的要求,AutoCompleteSource 属性提供CustomSource选项让开发人员可以透过AutoCompleteCustomSource属性指定更多资料来源以便符合更多类型的需要。

AutoCompleteCustomSource属性是AutoCompleteStringCollection的形态,支持AddAddRange等方法以加入需要的字符串,如例:

VB.Net

Dim member() As String = {“one”,”two”}

TextBox2.AutoCompleteCustomSource.AddRange(member)

新输入的资料不会加入自动完成清单的解决方法

需要使用Add()方法,系统不会自动加入

结束程序,再启动,以前的自动完成清单不见了?

       程序结束后再启动,你会发现先前所加入的清单不见了?没错,那是因为之前的资料(自动完成的字符串集合)只保留在内存中,当应用程序结束后,内存中的资料也随之消失,解决方法是将内存中的资料存档,方法当然有很多了。可以使用FileStream  StreamWriter 等,在这里,我推荐使用Windows应用程序设定的功能(就是App.Config)设定中有专门的AutoCompleteStringCollection类型可以供存贮,关于方法大家可以查阅MSDN的资料在这里我就不再废话了。

结束语

Windows Form .Net 2.0中终于有了自动完成功能,这个功能可以套用到TextBoxComboBox等文字输入类的控制项,配合应用程序的设定档,可以达到更完整的功能。