自定义 StringTable 的自动完成功能 (C# API : SHAutoComplete)

2016-01-29 13:23 7 1 收藏

自定义 StringTable 的自动完成功能 (C# API : SHAutoComplete),自定义 StringTable 的自动完成功能 (C# API : SHAutoComplete)

【 tulaoshi.com - ASP.NET 】

首先请从 Code Project 上下载源代码,其中包含了大量的 API 调用,还有详细的说明和示例,并且可以生成 ShellLib.dll 直接在自己的程序中调用。
源代码中介绍了如何使用 SHAutoComplete API,并演示了如何为 ComboBox 加入自定义的 StringTable,但没有说明如何为 TextBox 进行定义。其实这个功能经过少许的修改,就可以实现。 下面的代码说明了以上的问题: public static void AutoComplete(System.Windows.Forms.TextBox textBox, string[] list) { // 定义并实例化 ShellAutoComplete 对象 ShellAutoComplete ac = new ShellAutoComplete(); // 绑定 TextBox 对象 ac.EditHandle = textBox.Handle; // 设置自动完成选项 ac.ACOptions = ShellAutoComplete.AutoCompleteOptions.None; ac.ACOptions |= ShellAutoComplete.AutoCompleteOptions.AutoSuggest; ac.ACOptions |= ShellAutoComplete.AutoCompleteOptions.AutoAppend; ac.ACOptions |= ShellAutoComplete.AutoCompleteOptions.UpDownKeyDropsList; ac.ACOptions |= ShellAutoComplete.AutoCompleteOptions.UseTab; // 定义并返回要显示的列表 SourceCustomList custom = new SourceCustomList(); custom.StringList = list; ac.ListSource = custom; // 尝试激活自动完成功能 try { // 激活自动完成功能 ac.SetAutoComplete(true); } catch { // 如果出错则不作处理 return; } }

来源:http://www.tulaoshi.com/n/20160129/1490012.html

延伸阅读
 C# 中的“事件”是当对象满足一定条件,发生某些事情时,类向该类的客户提供通知的一种方法。使用事件,拥有该事件的对象不必知道需要通知谁,一旦满足了某个条件,将自动调用该事件,正确通知每个需要通知的对象。通过使用事件,提高了程序的模块化程度。  要在程序中使用自定义事件,需按以下步骤进行: 1、声明事件要在类内...
--------------------------------------------------- -------自定义的TShockwaveflash.ocx---------------- --------------------------------------------------- --------------------------------------------------- 添加功能:对鼠标在 flash.ocx 中的信息捕获.---------- --------------------------------------------------- 可捕获鼠...
《死侍》自定义键位心得完美自定义键位 方式1: Q作为传送反击键,鼠标左键轻击,右键重击,中键开枪,E键瞄准放大,R重装和互动,ZXC分别对应键盘的轻枪重,其他不变。 鼠标左键轻击,右键重击,中键开枪,这个几乎没什么可说的。 ZXC的定义是不想占用其他键位,再就是方便看刚开始了解连招,也比较形象和对称,有时还可以用来释放动...
iPhone如何自定义自动锁屏时间?  Tulaoshi.com 1、打开手机页面,看到设置图标,选择设置。 2、打开设置后,可以在一系列功能里选择通用。 3、通用里有自动锁定,这里有默认的自动锁定时间,可以更改。 4、在自动锁定里可选择锁屏时间。 iPhone自带的指南针如何使用?   1、首先在打开指南针前...
介绍 API(Application Programming Interface),我想大家不会陌生,它是我们Windows编程的常客,虽然基于.Net平台的C#有了强大的类库,但是,我们还是不能否认API在Windows编程中的重要性。大多数的编程语言都支持API编程,而.Net平台中的MFC(Microsoft Foundation Class Library)构架本身就封装了大部分的API。 做为程序员,...

经验教程

290

收藏

61
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部