carlyuan1115 发表于 2016-3-29 17:18:20

GCDateTimeCell控制dropdown

GCDateTimeCell里获得焦点时有时候会弹不出dropdown来,如何用代码来控制,只要是activecell就弹出dropdown来?

robert 发表于 2016-3-30 09:33:56

设置GcDataTime上的DropDown属性里的AutoDropDown子属性为True,看是否可以解决问题
            GcDateTimeCell gcDateTimeCell = new GcDateTimeCell();
            gcDateTimeCell.DropDown.AutoDropDown = true;

carlyuan1115 发表于 2016-3-30 09:48:06

已经把这个属性设为true了
在某个按钮的事件里,做这个cell的日期检查时,发现值有错误,用下面的代码把焦点设回到这个cell,这种情况下,虽然AutoDropDown是true,可是还是弹不出dropdown来

                  Me.mlt.CurrentCellPosition = New CellPosition(i, 2)
                  Me.mlt.Focus()


是这样设焦点的方式错误吗?还是需要别的做法?

robert 发表于 2016-3-30 09:53:01

在Focus之后调用一下BeginEdit方法,看是否可以
Me.mlt.CurrentCellPosition = New CellPosition(i, 2)
Me.mlt.Focus()
Me.mlt.BeginEdit(True)

carlyuan1115 发表于 2016-3-30 10:28:59

本帖最后由 carlyuan1115 于 2016-3-30 10:38 编辑

没有效果:L

robert 发表于 2016-3-30 11:30:17

我这试验了下是可以的,不知道是不是你的项目里有其他的什么设置。
是否可以上传一个可以重现问题的示例工程?

carlyuan1115 发表于 2016-3-30 11:44:28

robert 发表于 2016-3-30 11:30
我这试验了下是可以的,不知道是不是你的项目里有其他的什么设置。
是否可以上传一个可以重现问题的示例工 ...

尝试了各种做法,基本上解决了。
就是把focus设定和currentcell的设定反过来就行了。
(但是因为一些项目别的原因,又需要在focus之前清空一下currentcell)
原理不是很清楚。

Me.mlt.CurrentCellPosition = CellPosition.Empty
Me.mlt.Focus()
Me.mlt.CurrentCellPosition = New CellPosition(i, 2)

robert 发表于 2016-3-30 12:02:36

解决了就好
页: [1]
查看完整版本: GCDateTimeCell控制dropdown