【WinForms】C1FlexGrd如何屏蔽系统热键
我发现C1FlexGrd处于编辑状态下,如果按下shift+enter键后是清楚单元格中的内容现在我需要屏蔽掉这个功能,同时shift+enter键还要实现别的功能
请问版主有什么办法吗 回复 1楼xuxs的帖子
C1FlexGrid提供了KeyDownEdit和KeyUpEdit事件,在编辑状态下按下键的时候会触发這两个事件。
我使用KeyDownEdit事件来处理,当按下shift+enter键的时候,不去删除内容。代码如下:
void c1FlexGrid1_KeyDownEdit(object sender, KeyEditEventArgs e)
{
if (e.Shift && e.KeyCode == Keys.Enter)
{
e.Handled = true;
//自定义需要实现的功能
DoAction();
}
}
这样子实现后出现了一个新问题:在编辑状态下获取C1FlexGrid.Editor.Text是有值的,但这个值显示不出来。
这个新问题我作为Bug处理中。若你有更好的解决方法,希望不吝赐教。 单纯屏蔽掉shift+enter是没有问题的,我也可以让值仍然显示出来,方法是重载windows的processCmdKey方法,在该方法中截获shift+enter消息即可,但是现在我面临的问题是,我们的需求要求shift+enter要实现其他的功能,同时还不能删除editor中的值。
如果从写processCmdKey方法,键盘消息就阻塞掉了(就像hook),因此是对shift+enter键的绝对屏蔽
贵公司的Spread组件就有专门的属性来对热键进行控制的,不知道C1的产品是否有类似的功能呢 回复 3楼xuxs的帖子
你说的问题我理解了,但C1没有和Spread类似的方法,对热键进行修改。
你的需求我记录下来反馈到产品组,需要大约2-3天能收到回复。
如果有进一步的消息,我再和你联系。 回复 3楼xuxs的帖子
很抱歉,3楼提到的功能暂不提供。
页:
[1]