winform模糊查找的功能,比如说在文本框内输入a,就会出现一个下拉菜单显示相应的a开头

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了winform模糊查找的功能,比如说在文本框内输入a,就会出现一个下拉菜单显示相应的a开头相关的知识,希望对你有一定的参考价值。

的数据,再输入ab就会出现所有包含ab的数据提供选择。

需要增加一个在默认情况下隐藏的ListBox在TextBox的下面。
首先设置 textbox的TextChanged事件
只要textbox的文本值发生了改变,就会触发该事件
位于textbox下方隐藏的ListBox显示,并加载查找到的数据,
在设置一下ListBox控件的ItemClick事件
单击Item时,就将该项的值加载到TextBox上

//************************************************************
重写TextBox可以实现更好的效果,使用起来也会更加方便(不需要每个需要模糊查询的地方都拖一个ListBox并实现一堆逻辑),但是其实现代价比较大,有一定难度,如果有兴趣可以尝试。追问

我i是我要得就是百度首页那样的功能,不过我用winform做的,具体代码怎么写啊?谢了

参考技术A 说一下思路吧
其实模糊查找功能,
首先设置 textbox的键盘按键事件
没当你按下了一个 按键,那么后台就会去进行模糊查询
比如你按了a,后台''select * from userinfo where name like '%a%'"
这个时候前台,位于textbox下方隐藏的datalist显示查找到的数据,并且显示
如果没有查到,那么则继续隐藏
在设置一下datalist控件的单机事件
单击哪条查找到的信息,则相应的去后台进行查询主要数据
(记不得 WinForm有没有datalist控件了,不过肯定有类似的控件)
参考技术B 这个需要自己封装一个textbox,类似自定义控件,主类继承textbox,另外还需要一个类 用于承载检索出来信息选项,继承listbox,第三个类 用于存储被检索数据的实体对象类。主类里面需要定义一些委托 私有变量 还有例如检索到的字的颜色 或者其他的属性 点击之后触发的事件等。总的来说有点小复杂,可以慢慢尝试,我有源码但是不能给你,呵呵

NSTextField 是第一响应者,但我仍然必须在输入之前在文本框内单击

【中文标题】NSTextField 是第一响应者,但我仍然必须在输入之前在文本框内单击【英文标题】:NSTextField is first responder but I still must click inside the text box before typing 【发布时间】:2013-09-28 18:14:22 【问题描述】:

我的最终目标是默认选择一个 NSTextField,允许用户在不先点击文本字段的情况下开始输入。

我有一个由 NSViewController 控制的视图。该视图包含几个文本字段。 NSView 和 NSWindow 都是自定义子类。文本字段没有子类化。只是一个标准的 NSTextField。

在视图控制器的 awakeFromNIB 中,我有代码:

[[[NSApplication sharedApplication] mainWindow] makeFirstResponder:firstBox];
NSLog(@"%@",NSStringFromClass([[[[NSApplication sharedApplication] mainWindow] firstResponder] class]));

文本字段周围有一个焦点环,并且 NSLog 打印出第一响应者是 NSTextField,但我仍然需要在文本字段内单击才能开始输入。

什么可能导致该字段成为第一响应者但不可编辑?我应该从中调用 makeFirstResponder 有更好的方法吗?

【问题讨论】:

将文本字段设置为第一响应者时是前面的窗口和键吗? 是的。在 applicationDidFinishLaunching 中,我将窗口键和订单放在前面。用户将单击第一个视图上的按钮,该按钮将切换视图控制器并显示发生问题的新视图。 这似乎与我在 awakeFromNib 中制作现场第一响应者这一事实有关。如果我创建一个 IBAction 使 NSTextField 成为第一响应者并将其关联到一个按钮,当我单击该按钮时,文本字段将成为第一响应者并且其中有光标,我可以立即开始输入。 我也尝试过使用 loadView,但结果相同,字段有焦点环,但我无法输入。 - (void) loadView [super loadView]; [[[NSApplication sharedApplication] mainWindow] makeFirstResponder:firstBox]; NSLog(@"%@",NSStringFromClass([[[[NSApplication sharedApplication] mainWindow] firstResponder] class])); 【参考方案1】:

我找到了potentially useful hint on CocoaDev.com,试试这个:

[[[NSApplication sharedApplication] mainWindow] 
    performSelector: @selector(makeFirstResponder:) 
         withObject: firstBox 
         afterDelay:0.0];

【讨论】:

以上是关于winform模糊查找的功能,比如说在文本框内输入a,就会出现一个下拉菜单显示相应的a开头的主要内容,如果未能解决你的问题,请参考以下文章

asp.net中下拉框实现模糊查找

c# .net winform 在文本框里输入数据(用于查找的参数) 然后回车将gridview中的那条数据处于选中状态

怎样在Winform内实现ComboBox模糊查询

模糊搜索的实现

蒙面文本框输入左对齐

mysql模糊查询%参数%;当输入%时就奖全部记录都查出来,我想输入%时查询像%aa这样的记录,改怎么办?