社区
C#
帖子详情
怎样实现Combox中输入文字(或拼音)就按照索引排序,按回车后便选中第一项??百分百结帐!
yxred
2005-08-21 10:26:10
如一个combox有如下项:
张三
张四
张五
李三
李四
李五
周三
周四
周五
当输入“张”时出现
张三
张四
张五
按回车,选择 张三,按2选择 张四 按3选择 张五
当我输入"ZS"时,出现张三/周三/按回车选择 张三,按2选择 周三
当输入一个都没有选择时,提示出错,或添加数据库,不知这个好不好做,或提供思路》OK!
有实现的例子就更好了!
...全文
558
10
打赏
收藏
怎样实现Combox中输入文字(或拼音)就按照索引排序,按回车后便选中第一项??百分百结帐!
如一个combox有如下项: 张三 张四 张五 李三 李四 李五 周三 周四 周五 当输入“张”时出现 张三 张四 张五 按回车,选择 张三,按2选择 张四 按3选择 张五 当我输入"ZS"时,出现张三/周三/按回车选择 张三,按2选择 周三 当输入一个都没有选择时,提示出错,或添加数据库,不知这个好不好做,或提供思路》OK! 有实现的例子就更好了!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
huanggj
2005-11-14
打赏
举报
回复
学习
iheshi
2005-10-07
打赏
举报
回复
http://iheshi.cnblogs.com/archive/2005/10/07/249782.html
flyboy20
2005-08-22
打赏
举报
回复
太多了
o1234567890
2005-08-22
打赏
举报
回复
我都晕了
jinjazz
2005-08-22
打赏
举报
回复
http://borland.mblogger.cn/jinjazz/posts/23144.aspx
using System;
using System.Runtime.InteropServices;
namespace AutoComplete
{
/// <summary>
/// ComboboxHelper 的摘要说明。
/// 调用:
/// private void Form1_Load(object sender, System.EventArgs e)
/// {
/// new SetComboboxAuto(this.comboBox1);
/// }
/// </summary>
///
public class COMEnumString :UCOMIEnumString
{
public string[] StringList;
private int currentPosition = 0;
public int Next(
int celt,
string[] rgelt,
out int pceltFetched)
{
pceltFetched = 0;
while ((currentPosition <= StringList.Length-1) && (pceltFetched < celt))
{
rgelt[pceltFetched] = StringList[currentPosition];
pceltFetched++;
currentPosition++;
}
if (pceltFetched == celt)
return 0; // S_OK;
else
return 1; // S_FALSE;
}
public int Skip(
int numElementToSkip)
{
currentPosition += numElementToSkip;
if (currentPosition <= StringList.Length - 1)
return 0; // S_OK;
else
return 1; // S_FALSE;
}
public int Reset()
{
currentPosition = 0;
return 0;
}
public void Clone(
out UCOMIEnumString ppenum)
{
COMEnumString clone = new COMEnumString();
clone.currentPosition = currentPosition;
clone.StringList = (String[])StringList.Clone();
ppenum = clone;
}
}
[ComImport]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[Guid("EAC04BC0-3791-11D2-BB95-0060977B464C")]
public interface IAutoComplete2
{
Int32 Init(
IntPtr hwndEdit,
[MarshalAs(UnmanagedType.IUnknown)]
Object punkACL,
[MarshalAs(UnmanagedType.LPWStr)]
string pwszRegKeyPath,
[MarshalAs(UnmanagedType.LPWStr)]
string pwszQuickComplete);
[PreserveSig]
Int32 Enable(
Int32 fEnable);
[PreserveSig]
Int32 SetOptions(
UInt32 dwFlag);
[PreserveSig]
Int32 GetOptions(
out UInt32 pdwFlag);
}
[Flags]
public enum AutoCompleteOptions
{
None = 0, //没有自动完成
AutoSuggest = 0x1,//启用自动建议的下拉列表框
AutoAppend = 0x2,//启用自动添加
Search = 0x4,//在完成的串中添加搜索项目,选中此项目启动搜索引擎
FilterPreFixes = 0x8,//不匹配逗号前缀,如“www.”,“http://”等
UseTab = 0x10,//使用Tab键从下拉框清单中选择
UpDownKeyDropsList = 0x20,//使用上下箭头键显示自动建议的下拉框清单
RtlReading = 0x40 //常规窗口从左到右显示文本。Windows 可以被映射显示诸如 Hebrew 或 Arabic 这样从右到左阅读的语言。通常,某个控制的文本与其父窗口文本的阅读/显示方向相同。如果设置ACO_RTLREADING,那么文本阅读方向与其父窗口文本阅读方向相反。
}
public class AutoComplete : IDisposable
{
protected IAutoComplete2 m_iAutoComp;
public AutoComplete(IntPtr hwndTextBox, string [] DataList)
{
COMEnumString sourceList = new COMEnumString();
sourceList.StringList = DataList;
Type typeAutoComplete = Type.GetTypeFromCLSID(new Guid("{00BB2763-6A77-11D0-A535-00C04FD7D062}"));
m_iAutoComp = (IAutoComplete2)Activator.CreateInstance(typeAutoComplete);
AutoCompleteOptions ACOptions = AutoCompleteOptions.AutoSuggest;
m_iAutoComp.Init(hwndTextBox, sourceList, "", "");
m_iAutoComp.SetOptions((UInt32)ACOptions);
m_iAutoComp.Enable(1);
}
public void Disable()
{
AutoCompleteOptions ACOptions = AutoCompleteOptions.None;
m_iAutoComp.SetOptions((UInt32)ACOptions);
}
public void Enable()
{
AutoCompleteOptions ACOptions = AutoCompleteOptions.AutoSuggest
|AutoCompleteOptions.AutoAppend
|AutoCompleteOptions.UpDownKeyDropsList
|AutoCompleteOptions.FilterPreFixes;
m_iAutoComp.SetOptions((UInt32)ACOptions);
}
public void Dispose()
{
Marshal.ReleaseComObject(m_iAutoComp);
}
}
public class SetComboboxAuto
{
[DllImport("user32.dll")]
public static extern IntPtr FindWindowEx(IntPtr hwndParent,IntPtr hwndChildAfter,string lpszClass,string lpszWindow);
private System.Windows.Forms.ComboBox _combobox=null;
private IntPtr hCombobox;
public SetComboboxAuto(System.Windows.Forms.ComboBox thisCombo)
{
this._combobox=thisCombo;
this._combobox.DropDownStyle=System.Windows.Forms.ComboBoxStyle.DropDown;
this._combobox.Leave+=new System.EventHandler(this.comboboxLeave);
hCombobox=FindWindowEx(this._combobox.Handle,new IntPtr(0),"Edit",null);
new AutoComplete(hCombobox, this.getListItem(this._combobox)).Enable();
}
public string[] getListItem(System.Windows.Forms.ComboBox cbx)
{
string [] ret=new string[cbx.Items.Count];
for(int i=0;i<cbx.Items.Count;i++)
{
ret[i]=cbx.Items[i].ToString();
}
return ret;
}
private void comboboxLeave(object sender,System.EventArgs e)
{
int sel=this._combobox.FindStringExact(this._combobox.Text);
if (sel>=0) this._combobox.SelectedIndex=sel;
else
{
if (this._combobox.Text!="")
{
this._combobox.Text="";
this._combobox.Select();
System.Windows.Forms.MessageBox.Show(";(");
}
}
}
}
}
salmon230
2005-08-22
打赏
举报
回复
这个只要汉字拼音首字母就行了,网上有例子
TechEye
2005-08-22
打赏
举报
回复
楼主用 google 找一下关键字:C# 汉字拼音检索
lyb_abiandbel
2005-08-22
打赏
举报
回复
http://geekswithblogs.net/mchroman/archive/2005/07/25/48203.aspx
Thinkerwang
2005-08-22
打赏
举报
回复
我也是这个问题,差不多.有好的简单点的例子吗?
ljp3000
2005-08-21
打赏
举报
回复
就是说 自动完成 功能 了?
http://geekswithblogs.net/mchroman/archive/2005/07/25/48203.aspx
MFC
Com
box
自动提示
输入
利用 C
Com
bo
box
实现
百度,google自动匹配,当用户在
输入
框
输入
内容时,在下拉框
中
自动提示与用户
输入
内容相匹配的项,供用户选择。MFC没有自动提示
输入
的控件,因此用C
Com
bo
Box
实现
,在编程过程
中
会遇到一些问题,在这里一一解决,成功
实现
理想的目标。
c#
com
box
根据
输入
自动查询
com
box
根据
输入
自动查询 挺牛的 有很多功能
com
box
加Cek
box
实现
多选按钮
com
box
加Cek
box
实现
多选按钮
com
box
实现
多选功能并输出到text
box
中
winform下拉框
输入
汉字首字母快速检索所需项
此程序是c# winform 开发的下拉框选择功能,可以通过
输入
各选项汉字的首字母快速检索所需项,当然,里面其
中
最大的功能是汉字转
拼音
功能(汉字全拼/汉字首字母等功能)。由于刚好一个老系统在用vs2003,所以,索性就用vs2003开发的,既然老版本都能开发,所以,其他版本vs2005,vs2008,vs2010等都一样。这只是一个例子,如需更多了解,请联系anton318@tom.
com
com
box
实现
的可编辑下拉框
com
box
实现
的可编辑下拉框 可编辑下拉框,其实就是在下拉框的上面放了个无边框的
输入
框,在
输入
框输数据时,下拉框自动定位,下拉框
选
中
某项时,下拉框的值赋给
输入
框,从而产生错觉
C#
110,535
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章