找回密码
 立即注册

QQ登录

只需一步,快速开始

miyaminn

论坛元老

48

主题

121

帖子

2万

积分

论坛元老

积分
22182

活字格认证

miyaminn
论坛元老   /  发表于:2015-2-2 09:16  /   查看:8670  /  回复:8
版本:PowerTools InputMan for Windows Forms 7.0J
需求:
对于GcText,GcNumber,GcDate输入控件,TAB进入控件时,想变成全选状态;鼠标点击进入时,不是全选状态。不知能否实现?
(控件有HIGHLIGHT的属性,但是设置为TRUE后,TAB进入和鼠标进入都全选了,不满足需求)

8 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2015-2-2 17:05:00
沙发
回复 1楼miyaminn的帖子

没有直接的接口可以实现。
你可以尝试在GotFocus事件里,判断当tab键进入,设置Hightlight为true,鼠标键进入,设置highlight为false
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
Leo
超级版主   /  发表于:2015-2-2 18:10:00
板凳
不用那么麻烦,你尝试这段Code:
  1. public Form1()
  2.         {
  3.             InitializeComponent();
  4.             this.gcTextBox1.GotFocus += gcTextBox1_GotFocus;
  5.         }
  6.         void gcTextBox1_GotFocus(object sender, EventArgs e)
  7.         {
  8.             this.gcTextBox1.SelectAll();
  9.         }
复制代码

唯一的遗憾可能是鼠标点击获得Focus,光标会在末尾略闪烁一下下,如果觉得还能接受,那么这个解决方案是最简单的。

以上
回复 使用道具 举报
miyaminn
论坛元老   /  发表于:2015-2-3 10:08:00
地板
感谢各位版主的回答!

我这边尝试了Leo 版主的方法。
GcText的时候,可以实现我想要的功能。
但是GcNumber和GcDate的话,如果使用上述方法,鼠标点进去后,还是会全选的。
这个就没办法了是么?
回复 使用道具 举报
Leo
超级版主   /  发表于:2015-2-3 11:31:00
5#
回复 4楼miyaminn的帖子

这个貌似没有什么快餐式的解决方法,只能跑去处理鼠标键盘消息,记点儿Flag什么的了。
回复 使用道具 举报
miyaminn
论坛元老   /  发表于:2015-2-4 13:16:00
6#
多谢管理员的回答。

回头再和客户沟通一下。
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-2-4 14:14:00
7#
回复 6楼miyaminn的帖子

好的。如果依然有问题,请提出。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
miyaminn
论坛元老   /  发表于:2015-2-4 15:31:00
8#
再请教以下Alice版主:

如果按照你说的方法:
你可以尝试在GotFocus事件里,判断当tab键进入,设置Hightlight为true,鼠标键进入,
设置highlight为false

我怎么判断光标进入时时Tab还是鼠标呢?这个有什么方法吗?
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-2-4 18:50:00
9#
回复 8楼miyaminn的帖子

有关如何判断鼠标是否按下和键盘消息,是属于微软Framework下的技术,网上会有很多更详细的资料,能够帮助你。
大概说就是有MouseButtons和Keys可以获取到鼠标左键或是Keys.Tab。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部