找回密码
 立即注册

QQ登录

只需一步,快速开始

村东智叟

初级会员

29

主题

128

帖子

393

积分

初级会员

积分
393

微信认证勋章

村东智叟
初级会员   /  发表于:2022-9-20 15:31  /   查看:4258  /  回复:11



C1FlexGrid的单元格中列绑定ComBox的问题


C1FlexGrid的第一列的单元格中绑定了ComBox。但是选中这个单元格后,按下enter键无法使combox的下拉列表展开。只有用鼠标点击单元格内的ComBox的倒三角形才能使下拉列表正常展开。
经过测试发现是,按enter键后ComBox的下拉列表展开后又马上关闭了。
请问我想,该单元格被选中后按enter键后ComBox的下拉列表正常的展开,该怎么处理


11 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-9-20 18:53:21
沙发
问题已经收到,明天验证后给你回复
回复 使用道具 举报
村东智叟
初级会员   /  发表于:2022-9-20 19:02:52
板凳
Richard.Ma 发表于 2022-9-20 18:53
问题已经收到,明天验证后给你回复

好的,辛苦啦
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-9-21 12:17:52
地板
我添加了一个ComboBox测试了一下,并没有看到打开又关闭了,还是说你用的是C1Combox?
这个enter键的作用是进入编辑状态,目前没有什么好办法可以打开下拉,下面的代码没有办法完全解决问题
在StartingEdit中加入代码来打开下拉框,但是下拉框的位置不会和编辑器同步更新,也是有问题的

  1.         private void C1FlexGrid1_StartEdit(object sender, C1.Win.C1FlexGrid.RowColEventArgs e)
  2.         {
  3.             
  4.             if (c1FlexGrid1.Col == 2)
  5.             {
  6.                 (c1FlexGrid1.Editor as ComboBox).DroppedDown = true;
  7.             }
  8.         }
复制代码


回复 使用道具 举报
村东智叟
初级会员   /  发表于:2022-9-21 12:30:26
5#
Richard.Ma 发表于 2022-9-21 12:17
我添加了一个ComboBox测试了一下,并没有看到打开又关闭了,还是说你用的是C1Combox?
这个enter键的作用 ...

感谢回复。
目前采用的方法和您写的方法一样,也是在C1FlexGrid1_StartEdit中将下拉列表展开
实际测试是无法展开的。直接就进入了编辑模式
我这边再研究研究
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-9-21 17:29:56
6#
好的
回复 使用道具 举报
村东智叟
初级会员   /  发表于:2022-9-28 15:51:42
7#

现在有个思路。
就是在应该绑定了ComBox的单元格里面,实际不绑定ComBox。而是在窗体中创建一个ComBox控件,并设置为隐藏。
在这个单元格里面,按Enter键的时候,将这个ComBox控件在单元格的位置显示出来。然后在选择了ComBox种的选项后,讲值在赋值到单元格中。
想问一下有没有具体的实现代码?
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-9-28 18:29:22
8#
目前没有这个接口(数据的获取以及设置),如果只是通过代码来get set的话,可能会有很多的问题,不建议这样做

C1的有些控件,比如C1DropDown的话,本身就提供了接口来做数据的获取和回写。这种就很容易实现
回复 使用道具 举报
村东智叟
初级会员   /  发表于:2022-10-3 09:42:22
9#
Richard.Ma 发表于 2022-9-28 18:29
目前没有这个接口(数据的获取以及设置),如果只是通过代码来get set的话,可能会有很多的问题,不建议这 ...

按照下面这个思路,基本上实现了,按Enter键的时候展开ComBox下拉列表。
但是又出现了一个问题。就是双击单元格的时候又无法展开ComBox下拉列表了。
自己调查了一下。是因为按enter键和双击单元格的时候,editstart和afterstart事件的执行顺序有不一样。导致双击单元格的时候,虽然打开了ComBox下拉列表,但是又马上被关闭了

就是在应该绑定了ComBox的单元格里面,实际不绑定ComBox。而是在窗体中创建一个ComBox控件,并设置为隐藏。
在这个单元格里面,按Enter键的时候,将这个ComBox控件在单元格的位置显示出来。然后在选择了ComBox种的选项后,讲值在赋值到单元格中。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-10-8 10:28:17
10#
这个功能的实现目前给不了你更多建议了,

我看你提到了两个事件,应该是说StartEdit和AfterEdit吧,这两个事件有什么问题吗?
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部