找回密码
 立即注册

QQ登录

只需一步,快速开始

q123126

注册会员

1

主题

5

帖子

18

积分

注册会员

积分
18

活字格认证

最新发帖
q123126
注册会员   /  发表于:2011-2-18 12:55  /   查看:7082  /  回复:7
Spead能不能用回车替代Tab,在最后一行最后一列回车新增行

7 个回复

倒序浏览
gw0506
超级版主   /  发表于:2011-2-18 13:40:00
沙发
默认情况下,Enter是切换cell编辑状态的。
Spread提供默认的Keyboard Map,如果你需要改变它,可以参考下面的示例:
  1. private void Form1_Load(object sender, System.EventArgs e)
  2. {
  3.    FarPoint.Win.Spread.InputMap im = new FarPoint.Win.Spread.InputMap();
  4.    // Define the operation of pressing Enter key in cells not being edited as "Move to the next row".
  5.    im = fpSpread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenFocused);
  6.    im.Put(new FarPoint.Win.Spread.Keystroke(Keys.Enter, Keys.None), FarPoint.Win.Spread.SpreadActions.MoveToNextRow);
  7.    // Define the operation of pressing Enter key in cells being edited as "Move to the next row".
  8.    im = fpSpread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenAncestorOfFocused);
  9.    im.Put(new FarPoint.Win.Spread.Keystroke(Keys.Enter, Keys.None), FarPoint.Win.Spread.SpreadActions.MoveToNextRow);
  10. }
复制代码
回复 使用道具 举报
q123126
注册会员   /  发表于:2011-2-18 13:56:00
板凳
你这个是Win的吧,asp.net呢。好像没有这些方法
回复 使用道具 举报
gw0506
超级版主   /  发表于:2011-2-18 14:25:00
地板
恩,抱歉,前面给你的是WinForm的。

ASP.NET中可以使用AddKeyMap方法:
  1. <SCRIPT language=javascript>
  2.    function setMap() {
  3.        var ss = document.getElementById("FpSpread1");
  4.        if (ss != null){
  5.        ss.AddKeyMap(13,true,true,false,"this.MoveToLastColumn()");
  6.    }
  7. </SCRIPT>
复制代码

详情查看随机安装的帮助文档,AddKeyMap方法。
回复 使用道具 举报
q123126
注册会员   /  发表于:2011-2-18 14:36:00
5#
错误,对象不支持此属性或方法
回复 使用道具 举报
q123126
注册会员   /  发表于:2011-2-18 14:41:00
6#
哦,是我弄错了,那这个方法放在什么事件里面呢,好像没有KeyPress相关的事件。
回复 使用道具 举报
gw0506
超级版主   /  发表于:2011-2-18 14:48:00
7#
放到window.onload方法中即可。
回复 使用道具 举报
q123126
注册会员   /  发表于:2011-2-18 15:14:00
8#
这个是代码,单独用按钮执行可以,但是在onload里面就不行。
还有就是最后一行新增之后,并没有缠上序号,这样在新增行之后再新增的话,就不会添加新行,而是返回第一行。
  1.     <script type="text/javascript">
  2.         var ss;

  3.         function i() {
  4.             if (ss.ActiveRow == ss.GetTotalRowCount() - 1 &amp;&amp; ss.ActiveCol == ss.GetColCount() - 1) {
  5.                 ss.Add();
  6.                 ss.MoveToNextRow();
  7.                 ss.MoveToFirstColumn();
  8.             } else {
  9.                 ss.MoveToNextCell();
  10.             }
  11.             ss.StartEdit();
  12.         }
  13.         window.onload = function() {
  14.             ss = document.getElementById("FpSpread1");
  15.             if (ss != null) {
  16.                 ss.AddKeyMap(13, true, true, true, "this.MoveToNextCell()");
  17.             }
  18.         };
  19.     </script>
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部