村东智叟 发表于 2022-9-20 15:31:08

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




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


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


Richard.Ma 发表于 2022-9-20 18:53:21

问题已经收到,明天验证后给你回复

村东智叟 发表于 2022-9-20 19:02:52

Richard.Ma 发表于 2022-9-20 18:53
问题已经收到,明天验证后给你回复

好的,辛苦啦

Richard.Ma 发表于 2022-9-21 12:17:52

我添加了一个ComboBox测试了一下,并没有看到打开又关闭了,还是说你用的是C1Combox?
这个enter键的作用是进入编辑状态,目前没有什么好办法可以打开下拉,下面的代码没有办法完全解决问题
在StartingEdit中加入代码来打开下拉框,但是下拉框的位置不会和编辑器同步更新,也是有问题的

      private void C1FlexGrid1_StartEdit(object sender, C1.Win.C1FlexGrid.RowColEventArgs e)
      {
            
            if (c1FlexGrid1.Col == 2)
            {
                (c1FlexGrid1.Editor as ComboBox).DroppedDown = true;
            }
      }


村东智叟 发表于 2022-9-21 12:30:26

Richard.Ma 发表于 2022-9-21 12:17
我添加了一个ComboBox测试了一下,并没有看到打开又关闭了,还是说你用的是C1Combox?
这个enter键的作用 ...

感谢回复。
目前采用的方法和您写的方法一样,也是在C1FlexGrid1_StartEdit中将下拉列表展开
实际测试是无法展开的。直接就进入了编辑模式{:3_44:}
我这边再研究研究

Richard.Ma 发表于 2022-9-21 17:29:56

好的

村东智叟 发表于 2022-9-28 15:51:42

Richard.Ma 发表于 2022-9-21 17:29
好的

现在有个思路。
就是在应该绑定了ComBox的单元格里面,实际不绑定ComBox。而是在窗体中创建一个ComBox控件,并设置为隐藏。
在这个单元格里面,按Enter键的时候,将这个ComBox控件在单元格的位置显示出来。然后在选择了ComBox种的选项后,讲值在赋值到单元格中。
想问一下有没有具体的实现代码?

Richard.Ma 发表于 2022-9-28 18:29:22

目前没有这个接口(数据的获取以及设置),如果只是通过代码来get set的话,可能会有很多的问题,不建议这样做

C1的有些控件,比如C1DropDown的话,本身就提供了接口来做数据的获取和回写。这种就很容易实现

村东智叟 发表于 2022-10-3 09:42:22

Richard.Ma 发表于 2022-9-28 18:29
目前没有这个接口(数据的获取以及设置),如果只是通过代码来get set的话,可能会有很多的问题,不建议这 ...

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

就是在应该绑定了ComBox的单元格里面,实际不绑定ComBox。而是在窗体中创建一个ComBox控件,并设置为隐藏。
在这个单元格里面,按Enter键的时候,将这个ComBox控件在单元格的位置显示出来。然后在选择了ComBox种的选项后,讲值在赋值到单元格中。

Richard.Ma 发表于 2022-10-8 10:28:17

这个功能的实现目前给不了你更多建议了,

我看你提到了两个事件,应该是说StartEdit和AfterEdit吧,这两个事件有什么问题吗?
页: [1] 2
查看完整版本: 【ac11】C1FlexGrid的单元格中列绑定ComBox的问题