Multirow6.0 的Popupcell如何响应KeyPress事件
在Template里面放了一个PopupCell,用户不仅期望可以通过右方的按钮弹出参照,还期望通过输入框中输入空格也能弹出参照。另外,用户期望可以通过Enterkey来触发popupCell之间的切换,类似于上下左右键的功能。
请问有没有可能?
我做过的尝试:
首先响应EditingControlShowing事件,拿到PopupEditingControl 。
然后响应这个Control的KeyPress事件,处理Space和Enter两个按键的业务。
但是我发现第二步中触发不了KeyPress事件。
If TypeOf e.Control Is MultiRow.PopupEditingControl Then
Dim A As MultiRow.PopupEditingControl = CType(e.Control, MultiRow.PopupEditingControl)
RemoveHandler A.KeyPress, AddressOf PopKeyPress
AddHandler A.KeyPress, AddressOf PopKeyPress
EndIf
另外,我发现Multirow已经使用过了EnterKey,用来在一个Cell里面切换输入和一览这种状态,不知是否能屏蔽此功能?
以上三个问题,拜托了。
谢谢~ GcMultiRow默认注册Enter键来控制编辑状态,你可以更改这个默认的方式:
通过DesignTime,设置GcMultiRow的ShortcutKeyManager,你可以在IDE下选择属性浏览器,点击ShortcutKeyManager属性编辑器来更改默认的快捷键设置。
PopupEditingControl是一个复合Control,你需要Handle正真编辑的Control,请参考下边的代码,这个代码是如果按下Space键将弹出Popup Window。
private void Form1_Load(object sender, EventArgs e)
{
this.gcMultiRow1.EditingControlShowing += gcMultiRow1_EditingControlShowing;
}
void gcMultiRow1_EditingControlShowing(object sender, GrapeCity.Win.MultiRow.EditingControlShowingEventArgs e)
{
PopupEditingControl popEdit = e.Control as PopupEditingControl;
if (popEdit != null)
{
popEdit.Controls.KeyPress += (s, arg) =>
{
if (arg.KeyChar == ' ')
{
SendKeys.Send("{F4}");//Pop up PopupWindow.
}
};
}
}
收到,非常感谢~
就ShortcutKeyManager这个机能来说,Multirow真是一个伟大的产品,赞~ 非常感谢你对我们产品的评价,很高兴为你服务。
页:
[1]