WinForm"搜索提示效果(不错的)实现" 之 配餐系统的开发

原创 2011年01月15日 23:45:00

      与"窗体加载闪烁处理、无边框窗体的移动" 之 配餐系统的开发 这篇文章一样,本文还是将 配餐系统开发中的经验与大家一起分享和交流,或者说是‘抛砖引玉’——希望有朋友能提出更好的建议或方法。好了,切入正题,本文所要说的'搜索提示效果' 就是搜索引擎网站和很多网站中的搜索——搜索关键词提示效果,这种效果在网站(web项目)中很常见,也容易实现,而在这里要说的是在winform(桌面应用程序)中实现。

     winform中实现'搜索提示' ,我们在动手做之前,大概会有以下几点考虑:1.用什么控件用来做 搜索提示框——而且好用 易实现 比较美观(This is point!!!)。2.考虑如何实现 搜索提示框的定位显示 和 在搜索文本框的哪些事件中 做相应的处理——搜索提示框的显示或隐藏(这个就简单了)。 只针对 第一点说明:我们可能会有以下的选择:用textBox,listBox,DataGridView...做为 搜索提示框,其中用 textBox实现——其有类似的属性(如:图1),但无论是功能或效果都不怎么好,具体应用可以上网查,这里就不再叙述。

     用 listBox实现,好的效果 需要对控件进行重绘,比较麻烦;我最终的实现 选用的是 DataGridView(其实一开始就考虑到了,但是感觉应该找个更轻量级的控件),效果如下:

    

         

代码
void dgvSwShow_CellMouseLeave(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex > -1)
{
this.dgvSwShow.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.White;
this.dgvSwShow.CurrentCell = null;
}
}

void dgvSwShow_CellMouseEnter(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex > -1)
{
this.dgvSwShow.Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = "点击查看食物详细信息!";
this.dgvSwShow.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Orange;
this.dgvSwShow.CurrentCell = null;
}
}

void txtKey_KeyUp(object sender, KeyEventArgs e)
{
string key = this.txtKey.Text.Trim();
if (key == txtStr || string.IsNullOrEmpty(key))
{
ShowOrHideTipPanel(
false);
return;
}
DataTable dt
= ZhiyiHelper.DBHelper.GetTable("select top 8 id,name from tet where " + ZhiyiService.FoodService.GetLikeNameWhere(key) + " order by Id desc");
int swCount = dt.Rows.Count;
if (swCount == 0)
{
IsHideTipPanel_inner(
false);
this.lblNoSw.Text = " 没有您要的结果哦:)";
}
else
{
this.dgvSwShow.Height = swCount*25;
this.dgvSwShow.Location = new Point(0, 0);
this.dgvSwShow.DataSource = dt;
IsHideTipPanel_inner(
true);
//取消默认选中第一行
//this.dgvSwShow.ClearSelection();
this.dgvSwShow.CurrentCell = null;
}
ShowOrHideTipPanel(
true);
}

 

     看 图片和代码,已经很清楚了,用到dgvSwShow(搜索提示框) CellMouseEnter 和 CellMouseLeave事件——实现 颜色切换,搜索输入框 txtKey 的keyUp事件。好了,到此为止,有不清楚的朋友,可留言或QQ交流,希望大家多提意见!

版权声明:本文为博主原创文章,未经博主允许不得转载。

JS实现输入框类似百度搜索的智能提示效果

先上效果图 现在上代码 .search { left: 0; ...
  • yedajiang44
  • yedajiang44
  • 2017年05月25日 22:02
  • 1801

解决Outlook搜索功能的搜索结果不完整问题

最近在使用Outlook的时候,在收件箱按照人名为关键字进行邮件搜索的时候,发现搜索的结果总是局限在某一个日期附近,搜索结果根本不完整。 解决办法是,去File -> Options选项...
  • sundacheng1989
  • sundacheng1989
  • 2016年04月11日 16:29
  • 5863

C# TextBox带提示说明的搜索输入框

场景: 对于输入框,如果用户不知道要输入什么,这个时候有个提示是最好了, 下面是带提示说明的搜搜输入框,如图...
  • taoerit
  • taoerit
  • 2015年01月27日 13:17
  • 3555

"窗体加载闪烁处理、无边框窗体的移动" 之 配餐系统的开发

  本文主要跟大家分享在 ‘配餐系统’开发中 遇到的问题和处理,并且会在以后的时间里,写此项目的经验总结,希望能对你有所帮助!      1.窗体加载闪烁处理 ——这个问题可能大家在做winform应...
  • hutao123654
  • hutao123654
  • 2011年01月08日 22:07
  • 338

C#提升性能"数据库连接打开与关闭"经验分享(附:优化过的DBHelper类) 之配餐系统的开发

做程序开发到现在已有三年多的时间了,先不说技术已达到了什么样的一个水平,就对自己熟悉或比较精通的技术等——感觉需要再继续深究或清楚其如何用好(提升性能)的东西还不少[简单的说:就是有些自认为懂的技术,...
  • binyao02123202
  • binyao02123202
  • 2012年10月09日 17:48
  • 1079

C# Winform 开发系列(转载一个bbs,很不错的内容)

整理完成了 C# WinForm开发系列 - Report 收藏文章, 原打算直接在我原先发的 [分享]C# WinForm开发系列文章 帖子上回复的, 但好像大家都没有看回复的习惯, 自己又...
  • lanwilliam
  • lanwilliam
  • 2011年09月27日 14:45
  • 619

自动配餐系统

  • 2008年06月17日 16:08
  • 61B
  • 下载

Winform开发框架之系统登录实现

在业务系统的操作过程中,有时候,用户需要切换用户进行重新登录,这种情况有时候是因为一个人管理多个用户账号,希望通过不同的账号登录进行管理不同的资料,另一种情况是酒店的换班操作,另一个人接替前面的人进行...
  • lifeilin6671
  • lifeilin6671
  • 2012年11月20日 16:02
  • 964

纯CSS3实现不错的表单验证效果

这是补充HTML5基础知识的系列内容,其他为: 一、HTML5-- 新的结构元素二、HTML5-- figure、time、details、mark三、HTML5-- details活学活用四、...
  • qiupu4667
  • qiupu4667
  • 2017年04月12日 21:18
  • 1447

自定义Toast,实现不错的效果

自定义Toast,实现不错的效果
  • cool_fuwei
  • cool_fuwei
  • 2016年10月20日 20:04
  • 509
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:WinForm"搜索提示效果(不错的)实现" 之 配餐系统的开发
举报原因:
原因补充:

(最多只允许输入30个字)