找回密码
 立即注册

QQ登录

只需一步,快速开始

kinglee6446

中级会员

10

主题

18

帖子

988

积分

中级会员

积分
988

活字格认证

kinglee6446
中级会员   /  发表于:2013-11-1 18:03  /   查看:6854  /  回复:7
spread如何使行头可点击。这边需要点击行头的时候增加处理,但是不能点击行头。
各位大侠,请多多指教。

7 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2013-11-1 18:47:00
沙发
回复 1楼kinglee6446的帖子

Spread for Winforms 可以获取点击行头事件:

  1. private void Form1_Load(object sender, EventArgs e)
  2.         {
  3.             this.fpSpread1.CellClick += new FarPoint.Win.Spread.CellClickEventHandler(fpSpread1_CellClick);
  4.         }

  5.         void fpSpread1_CellClick(object sender, FarPoint.Win.Spread.CellClickEventArgs e)
  6.         {
  7.             if (e.RowHeader)
  8.             {
  9.                 MessageBox.Show("点击列头");
  10.             }
  11.         }
复制代码
回复 使用道具 举报
kinglee6446
中级会员   /  发表于:2013-11-4 10:31:00
板凳
回复 2楼iceman的帖子

我靠,我发现追加cellclick之后,cellleave就触发不了了,真烦人。点击行头就只能触发cellclick么,还有其他事件么?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-11-4 15:16:00
地板
回复 3楼kinglee6446的帖子

kinglee6446 你好,
我使用 Spread for Winforms 7.0 同时挂 LeaveCell 和 CellClick 事件,点击行头两个事件都可以触发,测试代码:

  1. private void Form1_Load(object sender, EventArgs e)
  2.         {
  3.             this.fpSpread1.CellClick += new FarPoint.Win.Spread.CellClickEventHandler(fpSpread1_CellClick);
  4.             this.fpSpread1.LeaveCell += new FarPoint.Win.Spread.LeaveCellEventHandler(fpSpread1_LeaveCell);
  5.         }

  6.         void fpSpread1_LeaveCell(object sender, FarPoint.Win.Spread.LeaveCellEventArgs e)
  7.         {
  8.             System.Diagnostics.Debug.WriteLine("leavecell");
  9.         }

  10.         void fpSpread1_CellClick(object sender, FarPoint.Win.Spread.CellClickEventArgs e)
  11.         {
  12.             if (e.RowHeader)
  13.             {
  14.                 System.Diagnostics.Debug.WriteLine("colheaderclick");
  15.             }
  16.         }
复制代码


如果没有解决问题,请发Demo上来调试?
回复 使用道具 举报
kinglee6446
中级会员   /  发表于:2013-11-4 17:05:00
5#
回复 4楼iceman的帖子

不好意思,现象描述错误。这边我试了下,点击单元格的时候,LeaveCell可以被触发。但是,如果点击RowHeader的话,这边需要设置SetActiveCell,然后LeaveCell就不能被触发了。
※ 之前有个问题,点击某个Button的时候,也是设置SetActiveCell之后(焦点移动),不能触发LeaveCell,然后我再SetActiveCell后面追加了【mySpread.editMode =  true】,再次点击button的时候,然后就能触发Leave事件。但是click的话,焦点一直在spread里面,不能触发Leave事件。这次不知道该怎么办了。
求指点。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-11-4 18:58:00
6#
回复 5楼kinglee6446的帖子

是否可以考虑在 SetActiveCell 后手动触发 LeaveCell 事件?
回复 使用道具 举报
kinglee6446
中级会员   /  发表于:2013-11-6 09:00:00
7#
这边在RowHeaderClick的时候先调用了leaveCell的处理,又追加了如下RowHeaderClick的处理,就行了。
If e.RowHeader = True Then
            FpSpread1_Sheet1.OperationMode = FarPoint.Win.Spread.OperationMode.SingleSelect
            FpSpread1_Sheet1.ClearSelection()
            FpSpread1_Sheet1.ActiveRowIndex = e.Row
            FpSpread1_Sheet1.AddSelection(e.Row, e.Column, 1, 1)
        Else
            FpSpread1_Sheet1.OperationMode = FarPoint.Win.Spread.OperationMode.Normal
        End If
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-11-6 13:24:00
8#
回复 7楼kinglee6446的帖子

好的,感谢kinglee6446 反馈问题解决方案。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部