找回密码
 立即注册

QQ登录

只需一步,快速开始

wjj_123

银牌会员

44

主题

81

帖子

2173

积分

银牌会员

积分
2173

活字格认证

wjj_123
银牌会员   /  发表于:2012-5-10 15:28  /   查看:5970  /  回复:7
怎样按Enter回车实现光标横向移动两列,到Spread 表的最右边时移动到下一行

7 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2012-5-10 15:52:00
沙发

回复 1# wjj_123 的帖子

wjj_123 你好,
不知道楼主的 Sheet 中列数,所以已七列为例,展示该功能,列数如果不同,更改判断逻辑即可:
后台代码:

  1. protected void Page_Load(object sender, EventArgs e)
  2.         {
  3.             if (!IsPostBack)
  4.             {
  5.                 this.FpSpread1.Sheets[0].RowCount = 10;
  6.                 this.FpSpread1.Sheets[0].ColumnCount = 7;
  7.             }
  8.         }
复制代码
前台代码:

  1.   <script type="text/javascript">
  2.         window.onload = function () {
  3.             var spread = this.document.getElementById("FpSpread1");
  4.             spread.onkeydown = test;
  5.         }

  6.         function test() {
  7.             if (event.keyCode == 13) {
  8.                 var spread = this.document.getElementById("FpSpread1");
  9.                 var activecol = spread.ActiveCol;
  10.                 var activerow = spread.ActiveRow;

  11.                 if (activecol==6) {
  12.                     spread.SetActiveCell(activerow + 1, 0);
  13.                 }
  14.                 else {
  15.                     spread.SetActiveCell(activerow , activecol + 2);
  16.                 }
  17.             }
  18.         }
  19.     </script>
复制代码
回复 使用道具 举报
wjj_123
银牌会员   /  发表于:2012-5-10 17:11:00
板凳
怎样判断光标到了哪一列,再移动到指定的一列呢?
比如光标在第一列,怎样再移动到第五列呢?
到了第5列再换行到下一行的第一列
请写出具体代码!!,谢谢了!!!!
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-5-10 18:01:00
地板

回复 3# wjj_123 的帖子

wjj_123 你好,
1.判断光标在哪一列,使用的方法为取得当前活跃单元格的 列索引,方法为:
  1. var activecol = spread.ActiveCol;
复制代码

2.设置光标位置,使用方法为设置活跃单元格,方法为:
  1. spead.SetActiveCell(activerow + 1, 0);
复制代码

3.该 Case 代码为:

  1. <script type="text/javascript">
  2.         window.onload = function () {
  3.             var spread = this.document.getElementById("FpSpread1");
  4.             spread.onkeydown = test;
  5.         }

  6.         function test() {
  7.             if (event.keyCode == 13) {
  8.                 var spread = this.document.getElementById("FpSpread1");
  9.                 var activecol = spread.ActiveCol;
  10.                 var activerow = spread.ActiveRow;

  11.                 if (activecol==0) {
  12.                     spread.SetActiveCell(activerow , 4);
  13.                 }
  14.                 if (activecol == 4) {
  15.                     spread.SetActiveCell(activerow, 0);
  16.                 }
  17.             }
  18.         }
  19.     </script>
复制代码
回复 使用道具 举报
wjj_123
银牌会员   /  发表于:2012-5-11 11:02:00
5#
再问一下当光标移从一列移动到另一列后,怎样设置焦点显示鼠标在哪个单元格中
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-5-11 11:29:00
6#

回复 5# wjj_123 的帖子

wjj_123 你好,
Spread for ASP.NET 中把焦点所在单元格称为活跃单元格-ActiveCell,只要 Spread 获得焦点,那么光标就在活跃单元格中。楼主可以做以下设置查看光标位置:

  1. this.FpSpread1.EditModePermanent = true;
复制代码
回复 使用道具 举报
wjj_123
银牌会员   /  发表于:2012-5-11 11:54:00
7#
就是说当光标从一个Text类型单元格移动到另一Text单元格时,当前单元格的光标显示为竖线
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-5-11 12:03:00
8#
wjj_123 你好,
如果楼主的意思为:活跃单元格处于编辑状态,就是显示“竖线光标”,如图:
cursor.png (10.46 KB, 下载次数: 177)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部