找回密码
 立即注册

QQ登录

只需一步,快速开始

Soft_Killer

注册会员

9

主题

35

帖子

199

积分

注册会员

积分
199

活字格认证微信认证勋章

Soft_Killer
注册会员   /  发表于:2014-6-25 11:23  /   查看:10308  /  回复:7
在VB6系统中,flexGrid中如果有checkBox的话,按下空格键,会把这个checkBox选中,但是目前VB.NET使用ComponentOne控件中的checkBox,按下空格键时,无法实现将该checkBox选中,请问ComponentOne有什么办法可以实现这种?

7 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2014-6-25 14:36:00
沙发
回复 1楼Soft_Killer的帖子

我的C1版本是:4.6.20141.822
IDE环境:Visual Studio 2010 vb.net
尝试如下步骤,CheckBox能用空格键选中:
1.使用下面的代码添加C1CheckBox给FlexGrid:
  1. Dim editor As New C1CheckBox()
  2.         editor.BorderStyle = BorderStyle.None
  3.         Me.C1FlexGrid1.Cols(1).Editor = editor
复制代码
2.运行时,选择第一列的第一个单元格,进入编辑状态。
3.按下空格键。
结果:checkBox会被选中。

不知道你的操作步骤和我的有什么区别?如果可以的话,把你的例子上传,以便我能够快速帮助你解决问题。谢谢。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
Soft_Killer
注册会员   /  发表于:2014-6-25 15:48:00
板凳
回复 2楼Alice的帖子

你好!按照你所说的方法没有实现我要的效果,而且对于“Dim editor As New C1CheckBox()”,我没有C1CheckBox()这个类(我的版本是4.6.20133.800)。
另外我要实现的效果如附件中图片所示,选中一行,该行除了checkBox以外,其他的都是不可编辑的,而且不论我选中该行的哪个Cell,按下空格都可以实现选中CheckBox,这是我想要的效果,麻烦您再给看下~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-6-25 18:39:00
地板
回复 3楼Soft_Killer的帖子

根据你的需求,你可以使用KeyDown事件,当空格键按下的时候,触发KeyDown事件去处理CheckBox的选中状态。
C1FlexGrid提供了SetCellCheck和GetCellCheck方法可以设置和获取CheckBox的选中状态。

我按照你3楼的图片,写了下面的代码。实现当按下空格键,触发KeyDown事件,在事件里对含有CheckBox的单元格进行设置。
  1.         void c1FlexGrid1_KeyDown(object sender, KeyEventArgs e)
  2.         {
  3.             if (e.KeyCode == Keys.Space)
  4.             {
  5.                 int row = this.c1FlexGrid1.RowSel;
  6.                 if (this.c1FlexGrid1.GetCellCheck(row, 3) != CheckEnum.Checked)
  7.                 {
  8.                     this.c1FlexGrid1.SetCellCheck(row, 3, CheckEnum.Checked);
  9.                 }
  10.                 else
  11.                 {
  12.                     this.c1FlexGrid1.SetCellCheck(row, 3, CheckEnum.Unchecked);
  13.                 }
  14.             }
  15.         }
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
Soft_Killer
注册会员   /  发表于:2014-6-26 08:57:00
5#
回复 4楼Alice的帖子

您好!你所提供的添加KeyDown事件的方法可以实现我想要的效果,非常感谢!但是我这边需要做一个大规模的开发,机能很多,如果针对每个机能都添加KeyDown事件的话,工作量很大,是否有其他方式能够实现?比如说设置属性之类的?
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-6-26 09:32:00
6#
回复 5楼Soft_Killer的帖子

你好。根据你所描述的,你可以在KeyDown事件里面用Switch判断是哪个键被按下然后执行相应的操作,这个需要自己写Code解决。C1没有直接的属性设置可以实现你说的所有机能。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
Soft_Killer
注册会员   /  发表于:2014-6-26 11:27:00
7#
回复 6楼Alice的帖子

了解!非常感谢,辛苦了!
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-6-26 14:39:00
8#
回复 7楼Soft_Killer的帖子

好的,谢谢关心啊。
如果有新问题可以开新帖,欢迎继续提问。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

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