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

王朝c#·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

首先请从 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;

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有  導航