找回密码
 立即注册

QQ登录

只需一步,快速开始

lucky

论坛元老

16

主题

38

帖子

6006

积分

论坛元老

积分
6006

活字格认证

lucky
论坛元老   /  发表于:2014-1-6 15:57  /   查看:5499  /  回复:7
spread7.0 双击单元格之后,如何让焦点回到textbox控件上呢?

7 个回复

倒序浏览
roger.wang
社区贡献组   /  发表于:2014-1-6 17:01:00
沙发
回复 1楼lucky的帖子

抱歉,没有太理解您的问题。

我的理解是:
1 双击Cell--触发DoubleClick事件
2 然后,写代码-textbox.Focus()

这样您试过吗?
回复 使用道具 举报
lucky
论坛元老   /  发表于:2014-1-6 17:39:00
板凳
就是doubleClick事件中取得当前行值之后,重新设定焦点。
你说的写法试过了,焦点出不来所以才问的,看有没有其他办法。
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-1-7 09:32:00
地板
回复 3楼lucky的帖子

doubleClick后,会触发调用CellType的Editor调用,即默认把焦点传递给CellType.Editor了。
可通过重写一个CellType修改焦点。

您能把这个功能点需求的背后故事详细说一下吗?  为什么要这样做,这样做的效果-步骤, CellType是什么类型的, 我帮您分析分析。
回复 使用道具 举报
lucky
论坛元老   /  发表于:2014-1-7 16:30:00
5#
好的,我给您详细的说一下我的需求。
spread显示的是一览数据,画面上还有一些文本框是显示详细信息的,可编辑。
双击spread中任意一行,把一览中当前选中行的数据显示到详细信息中的文本框中,为方便用户修正,需要把焦点置到文本框中,现在的问题是双击之后焦点跳过文本框之后又跳回来了,等于是还在spread上。
表达能力不是很好,不知能理解不?
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-1-7 16:55:00
6#
回复 5楼lucky的帖子

懂了,我再重复一下:
1 布局:Spread  + TextBox
2 Spread不需要双击直接编辑,而是双击行后
  把当前行的数据取出来----详细信息显示到TextBox中--同时把焦点移动TextBox
回复 使用道具 举报
lucky
论坛元老   /  发表于:2014-1-7 17:17:00
7#
嗯,是的。spread的是不可编辑的。
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-1-8 11:33:00
8#
回复 7楼lucky的帖子

基于上面的需求,写了短代码,供您参考:

  1. fpSpread1.ActiveSheet.SelectionPolicy = FarPoint.Win.Spread.Model.SelectionPolicy.Single;
  2. fpSpread1.ActiveSheet.SelectionUnit = FarPoint.Win.Spread.Model.SelectionUnit.Row;

  3. fpSpread1.ActiveSheet.Rows[1].Locked = true;
  4. fpSpread1.ActiveSheet.Rows[2].Locked = true;
  5. fpSpread1.ActiveSheet.Rows[3].Locked = true;

  6. void fpSpread1_CellDoubleClick(object sender, FarPoint.Win.Spread.CellClickEventArgs e)
  7.         {
  8.             this.textBox1.Text = fpSpread1.ActiveSheet.Cells[e.Row, e.Column].Text;

  9.             e.Cancel = true;
  10.             textBox1.Focus();
  11.         }
复制代码


思路如下:
1 UI布局:上面是Spread, 下面有一个TextBox
2 响应CellDoubleClick事件
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部