CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

请教各C#高手:如何实用Ctrl+F查询功能,就像EXCEL表格一样!

楼主keconghua(E代風花雪月)2006-07-03 19:51:57 在 .NET技术 / C# 提问

在C/S下面,每打开一个窗体,DataGrid里都会读取出好多数据  
  为了方便查询数据,能不能像EXCEL一样,按一下Ctrl+F就弹出一个窗口,输入要查询的数据  
  如果数据存在,则选中该行数据,并变颜色  
   
  请各位高手指点,万分感谢~~ 问题点数:20、回复次数:28Top

1 楼keconghua(E代風花雪月)回复于 2006-07-04 09:51:51 得分 0

自已顶一下,高手进来坐坐吧~~Top

2 楼SolidGL(管理管理,管的合理才叫管理.)回复于 2006-07-06 09:47:59 得分 0

很难吗?没感觉啊.Top

3 楼Knight94(愚翁)回复于 2006-07-06 10:00:07 得分 2

自己做,在Datagrid中捕获按键,如果是ctrl+f的话,就弹出窗体,然后在窗体中数据后,用数据源找到相应的行,最后在datagrid中去定位此行。Top

4 楼keconghua(E代風花雪月)回复于 2006-07-07 14:23:45 得分 0

说起来容易,做起来难呀  
  这个功能其实很有用的,能否给个示例来学习一下呢Top

5 楼zhgroup(王员外)回复于 2006-07-10 11:23:14 得分 2

这个应该不难吧,在DataGrid的KeyDown事件中,检测是否按下了Ctrl+F,如果是,则弹出查询对话框,然后确定查询条件,从数据库中查询,然后绑定到DataGrid.Top

6 楼yumanqing(笨鸟)回复于 2006-07-10 11:43:31 得分 1

这个慢慢试验吧,我也遇到过,不过后来没有这样做,可能不好做的是两个窗体的焦点的控制问题,Top

7 楼Knight94(愚翁)回复于 2006-07-10 11:53:46 得分 2

to   这个慢慢试验吧,我也遇到过,不过后来没有这样做,可能不好做的是两个窗体的焦点的控制问题  
   
  其实不需要焦点转移,或者这些你不需要做太多的事,  
  你把显示datagrid的窗体,对数据源的查找操作提供一个方法,然后把它委托给查找窗体,最后在查找窗体中触发这个事件即可。Top

8 楼keconghua(E代風花雪月)回复于 2006-07-10 15:07:35 得分 0

按照   Knight94(愚翁)   所说,我DataGrid是这样做的:  
  查询页面:  
  public   delegate   void   gridSqlDelegate(object   sender,SqlEventArgs   e);  
  [Category("自定义事件"),Description("给   DataGrid   绑定的事件")]  
  public   event   gridSqlDelegate   gridSqlEvent;  
  private   void   button1_Click(object   sender,   System.EventArgs   e)  
  {  
  //this.Paras   =   this.textBox1.Text;  
  //this.DialogResult   =   DialogResult.OK;  
  SqlEventArgs   setSql   =   new   SqlEventArgs(this.textBox1.Text);  
  this.gridSqlEvent(e,setSql);  
  }  
   
  public   class   SqlEventArgs   :   System.EventArgs  
  {  
  public   SqlEventArgs(string   val)  
  {  
  sql   =   val;  
  }  
  private   string   sql;  
  public   string   Sql  
  {  
  get{   return   sql;   }  
  }  
  }  
   
  GRID页面:  
  CFMS_Search   search   =   new   CFMS_Search();  
  search.gridSqlEvent   +=   new   CFMS_Search.gridSqlDelegate(query_gridSqlEvent);  
  search.Show();  
  private   void   query_gridSqlEvent(object   sender,   CFMS_Search.SqlEventArgs   e)  
  {  
        //选中DATAGRID  
  }  
   
  但是ListView怎么还选中行呢? Top

9 楼keconghua(E代風花雪月)回复于 2006-07-22 08:28:53 得分 0

还有没有其它更好的方法呢  
  功能最好是和EXCEL的一样,呵呵,挑战高难度~~Top

10 楼eplox(090-7523-38**)回复于 2006-07-22 08:48:03 得分 2

根本不用考虑焦点问题。  
  首先应该把主窗体的KeyPreview属性设定为   true    
  这时候,焦点不管在主窗体上任何控件上,只要有按键事件,主窗体都会同时获得此事件。  
  然后自己在主窗体的   KeyDown   事件里面自己检查   Ctrl   +   FTop

11 楼zhaochunyu0104(春雨)回复于 2006-07-22 09:14:16 得分 0

也许以后会用到,markTop

12 楼yuan135()回复于 2006-07-22 11:52:21 得分 0

很好的构思,应该可以实现Top

13 楼gsky()回复于 2006-07-25 00:17:56 得分 0

upTop

14 楼xiangyuen(成绩是汗)回复于 2006-07-25 16:25:27 得分 0

期待解决方法。Top

15 楼qw_study(QW-KING)回复于 2006-07-31 17:32:11 得分 0

建一个菜单按扭  
  里面有支持快洁键的属性  
  然后给他加上事件就OK了Top

16 楼yf1025(小桥,流水,人家)回复于 2006-08-02 10:59:55 得分 0

这个功能挺不错,mark下Top

17 楼erental(月下萧风)回复于 2006-08-08 08:24:07 得分 0

markTop

18 楼sophia2000(喝血社会)回复于 2006-08-08 16:24:53 得分 0

学习Top

19 楼wwqna(york)回复于 2006-08-14 10:14:41 得分 1

比较麻烦,首先就要看你的那个控件支不支持变颜色,然后这个按键的捕获问题Top

20 楼netboygg(菜菜)回复于 2006-08-15 08:09:03 得分 0

markTop

21 楼kkk_visual(凡事对错先问自己)回复于 2006-08-15 14:08:04 得分 5

private   void   dataGrid1_KeyDown(object   sender,   System.Windows.Forms.KeyEventArgs   e)  
  {  
  if   (e.Alt   &&   e.KeyCode   ==   Keys.F)  
  {  
  Form2   f2   =   new   Form2();  
  f2.Show();  
  }  
  }Top

22 楼givenchy(希希)回复于 2006-08-16 09:45:21 得分 1

哈哈,这一点c/s的就没有b/s的方便。Top

23 楼Samen168(Code to coding)回复于 2006-08-17 08:59:10 得分 1

处理KeyDownTop

24 楼guyes123(以为喜欢这里,所以来接分)回复于 2006-08-18 14:46:04 得分 0

没看懂,以后再看Top

25 楼kingtoo009()回复于 2006-08-20 16:20:49 得分 0

呵呵帮忙顶下.  
  ------------------------------------------------------------------------------------    
  100M.Net空间+50M企业邮局=60元/年  
  100M.Net空间+国际顶级域名=100元/年  
  国际顶级域名.com.net.cn=50元/年  
  本站申请域名可绑定免费10M   Asp.Net空间  
  1000M.Net空间   +   100M   MsSql数据库   +   1000M企业邮局   +   顶级域名=600元/年  
  数据库 企业邮局 网站推广 整机租用 美国空间 网站建设 均有售  
  还有很多优惠套餐提供给各个用户层.  
  有意者可联系电话:021-64802212   传真:021-64802212    
  咨询信箱:info@kingtoo.com   咨询OICQ:68311305,379620139   81778640    
  Top

26 楼shaqulle()回复于 2006-08-20 16:36:34 得分 1

keypressTop

27 楼pcj2008(☆蓬草江☆)回复于 2006-08-22 09:15:52 得分 1

捕获按键信息就可以啊!  
  可以看看win系统消息。。。Top

28 楼xiaobifei(小菲)回复于 2006-08-28 08:38:35 得分 1

考虑用Developer   Express   控件呢Top

29 楼jdhost(魏封侯)回复于 2006-09-01 09:07:06 得分 0

关注Top

相关问题

关键词

得分解答快速导航

  • 帖主:keconghua
  • Knight94
  • zhgroup
  • yumanqing
  • Knight94
  • eplox
  • wwqna
  • kkk_visual
  • givenchy
  • Samen168
  • shaqulle
  • pcj2008
  • xiaobifei

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo