找回密码
 立即注册

QQ登录

只需一步,快速开始

GPCT

初级会员

30

主题

76

帖子

232

积分

初级会员

积分
232

活字格认证

GPCT
初级会员   /  发表于:2014-6-11 11:01  /   查看:5954  /  回复:3
在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里面切换输入和一览这种状态,不知是否能屏蔽此功能?

以上三个问题,拜托了。
谢谢~
我们改变不了环境,但是可以适应环境。
我们改变不了过去,但是可以把握未来。
我们改变不了别人,但是可以调整自己。

3 个回复

倒序浏览
dafo
版主   /  发表于:2014-6-11 19:00:00
沙发
GcMultiRow默认注册Enter键来控制编辑状态,你可以更改这个默认的方式:
通过DesignTime,设置GcMultiRow的ShortcutKeyManager,你可以在IDE下选择属性浏览器,点击ShortcutKeyManager属性编辑器来更改默认的快捷键设置。


PopupEditingControl是一个复合Control,你需要Handle正真编辑的Control,请参考下边的代码,这个代码是如果按下Space键将弹出Popup Window。

  1.         private void Form1_Load(object sender, EventArgs e)
  2.         {
  3.             this.gcMultiRow1.EditingControlShowing += gcMultiRow1_EditingControlShowing;
  4.         }

  5.         void gcMultiRow1_EditingControlShowing(object sender, GrapeCity.Win.MultiRow.EditingControlShowingEventArgs e)
  6.         {
  7.             PopupEditingControl popEdit = e.Control as PopupEditingControl;
  8.             if (popEdit != null)
  9.             {
  10.                 popEdit.Controls[0].KeyPress += (s, arg) =>
  11.                 {
  12.                     if (arg.KeyChar == ' ')
  13.                     {
  14.                         SendKeys.Send("{F4}");//Pop up PopupWindow.
  15.                     }
  16.                 };
  17.             }
  18.         }
复制代码
回复 使用道具 举报
GPCT
初级会员   /  发表于:2014-6-12 13:52:00
板凳
收到,非常感谢~

就ShortcutKeyManager这个机能来说,Multirow真是一个伟大的产品,赞~
我们改变不了环境,但是可以适应环境。
我们改变不了过去,但是可以把握未来。
我们改变不了别人,但是可以调整自己。
回复 使用道具 举报
dafo
版主   /  发表于:2014-6-12 15:08:00
地板
非常感谢你对我们产品的评价,很高兴为你服务。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部