CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

>>>>>>>>> 阻止 RichEdit 选中整行文字 <<<<<<<<<<<<<<

楼主symansoft()2005-08-03 21:23:49 在 Delphi / VCL组件开发及应用 提问

 
  诸位好:  
   
          在RichEdit控件中输入文字,格式是居中,当鼠标在文字左边单击时,RichEdit自作聪明地选中了整行文字,致使该行文字黑底白字显示。  
          怎样阻止RichEdit自动选中整行文字呢?  
  问题点数:88、回复次数:7Top

1 楼Idle_(阿呆)回复于 2005-08-03 21:38:37 得分 0

好象回答过这个问题了呀Top

2 楼symansoft()回复于 2005-08-04 07:56:50 得分 0

 
          你虽然得分,但解决的不彻底。比如单击了左边空白处后,该行文字已被选中,已经黑底白字显示出来了,不好看。  
          我要求单击某行左边空白处时,根本不选中任何文字。即在RichEdit选中该行文字前取得控制权,以便禁止RichEdit的缺省功能。Top

3 楼bluejingling(总是想起蓝精灵)回复于 2005-08-04 08:26:57 得分 0

我告訴樓主一個主意:  
    用sendkey或其它函數模擬發送一個     <--   (向左的光標鍵),再發送一個向右的光標鍵,這樣,Mouse就不會再自動選擇了.  
       
      至於向左向右的光標鍵鍵值,好像是,   左為:37     右為:39  
   
    我不記得sendkey的使用方法了,你用一下  
            keybd_event(0,   MapVirtualKey(0,0),   0,0);  
   
  請樓主給我至少80分!Top

4 楼bluejingling(总是想起蓝精灵)回复于 2005-08-04 10:43:14 得分 0

 
  樓主,我為你的程序測試了半個多小時:  
  把下面的代碼放到RichEdit的   MouseUp   事件中:  
   
   
  if     x=0   then     //x=0表示mouse在最左邊,注意:把   richedit1   改為你自己命名的richedit   ^_^  
  begin    
  //光標   向右  
  sendmessage(richedit1.Handle,WM_KEYDOWN,   VK_RIGHT,0);       //wm_Keydown是按下  
  sendmessage(richedit1.Handle,WM_KEYUP,   VK_RIGHT,0);           //wm_keyup   是松開  
   
  //再向左  
  sendmessage(richedit1.Handle,WM_KEYDOWN,   VK_LEFT,0);       //wm_Keydown是按下  
  sendmessage(richedit1.Handle,WM_KEYUP,   VK_LEFT,0);           //wm_keyup   是松開  
   
  end;  
         
  效果:  
      在左邊按mouse時,程序依然後選擇全部文本,但執行上述代碼時,程序會驪上取消選擇  
   
  不明之處,請聯繫  
        bluejingling@tom.com      
        or   :    
        http://www.tanyong.com  
   
  希望樓主把另外一個帖子中的分也送給我!  
   
  每個帖子至少要給我80分,共計160分!  
  說話要算數!樓主!Top

5 楼symansoft()回复于 2005-08-05 20:17:20 得分 0

 
  恐怕没有你说的这么简单吧,我要求的是禁止选中整行文字,并非选中了再取消,因为那样的话就会引起闪烁。  
   
  再说,你的方法也不好,调节selstart等属性更简单。Top

6 楼symansoft()回复于 2005-08-10 13:50:54 得分 0

 
      高手到哪里去了,遗憾.Top

7 楼symansoft()回复于 2005-08-10 13:51:38 得分 0

高手到哪里去了,遗憾.  
  Top

相关问题

  • 关于ClistCtrl整行选中
  • 请问怎样能选中整行(让整行反显)?
  • 关于datagrid,如何选中整行
  • 如何在点击DBGrid时使整行处于选中状态?
  • 如何让鼠标右键选中mshflexgrid的一整行?
  • 选中ListCtrl中的列表的某一项时,如何使其整行选中?
  • 有什么办法让CCListCtrl在report方式时,选中一整行。
  • 请教各位兄弟:如何实现在 ListView 的 vsReport 中选中一整行?
  • 晕,我都快被datagrid(winform)搞死了,选中整行的问题?????
  • dxDBGrid中如何让被选中(locate)的行出现整行高亮的效果?

关键词

  • 文字
  • 整行
  • richedit
  • 选中
  • 阻止
  • 单击
  • 左边空白处
  • 黑底白字显示

得分解答快速导航

  • 帖主:symansoft

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

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