【ac11】C1FlexGrid的单元格中列绑定ComBox的问题
C1FlexGrid的单元格中列绑定ComBox的问题
C1FlexGrid的第一列的单元格中绑定了ComBox。但是选中这个单元格后,按下enter键无法使combox的下拉列表展开。只有用鼠标点击单元格内的ComBox的倒三角形才能使下拉列表正常展开。
经过测试发现是,按enter键后ComBox的下拉列表展开后又马上关闭了。
请问我想,该单元格被选中后按enter键后ComBox的下拉列表正常的展开,该怎么处理
问题已经收到,明天验证后给你回复 Richard.Ma 发表于 2022-9-20 18:53
问题已经收到,明天验证后给你回复
好的,辛苦啦 我添加了一个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;
}
}
Richard.Ma 发表于 2022-9-21 12:17
我添加了一个ComboBox测试了一下,并没有看到打开又关闭了,还是说你用的是C1Combox?
这个enter键的作用 ...
感谢回复。
目前采用的方法和您写的方法一样,也是在C1FlexGrid1_StartEdit中将下拉列表展开
实际测试是无法展开的。直接就进入了编辑模式{:3_44:}
我这边再研究研究 好的 Richard.Ma 发表于 2022-9-21 17:29
好的
现在有个思路。
就是在应该绑定了ComBox的单元格里面,实际不绑定ComBox。而是在窗体中创建一个ComBox控件,并设置为隐藏。
在这个单元格里面,按Enter键的时候,将这个ComBox控件在单元格的位置显示出来。然后在选择了ComBox种的选项后,讲值在赋值到单元格中。
想问一下有没有具体的实现代码? 目前没有这个接口(数据的获取以及设置),如果只是通过代码来get set的话,可能会有很多的问题,不建议这样做
C1的有些控件,比如C1DropDown的话,本身就提供了接口来做数据的获取和回写。这种就很容易实现 Richard.Ma 发表于 2022-9-28 18:29
目前没有这个接口(数据的获取以及设置),如果只是通过代码来get set的话,可能会有很多的问题,不建议这 ...
按照下面这个思路,基本上实现了,按Enter键的时候展开ComBox下拉列表。
但是又出现了一个问题。就是双击单元格的时候又无法展开ComBox下拉列表了。
自己调查了一下。是因为按enter键和双击单元格的时候,editstart和afterstart事件的执行顺序有不一样。导致双击单元格的时候,虽然打开了ComBox下拉列表,但是又马上被关闭了
就是在应该绑定了ComBox的单元格里面,实际不绑定ComBox。而是在窗体中创建一个ComBox控件,并设置为隐藏。
在这个单元格里面,按Enter键的时候,将这个ComBox控件在单元格的位置显示出来。然后在选择了ComBox种的选项后,讲值在赋值到单元格中。 这个功能的实现目前给不了你更多建议了,
我看你提到了两个事件,应该是说StartEdit和AfterEdit吧,这两个事件有什么问题吗?
页:
[1]
2