找回密码
 立即注册

QQ登录

只需一步,快速开始

孙增东

中级会员

5

主题

12

帖子

597

积分

中级会员

积分
597

活字格认证

孙增东
中级会员   /  发表于:2014-6-10 15:41  /   查看:5063  /  回复:3
怎么控制光标停留在Spread的单元格位置

3 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2014-6-10 16:30:00
沙发
回复 1楼孙增东的帖子

抱歉我没有完全理解你的意思。
请问你指的是光标停留在某个固定单元格中还是固定单元格中某个特定字符位置?

如果是第一种情况,代码如下:

  1.             this.fpSpread1.Sheets[0].SetActiveCell(3, 3);
  2.             this.fpSpread1.EditModePermanent = true;
复制代码


或者请你具体描述下需求。
回复 使用道具 举报
孙增东
中级会员   /  发表于:2014-6-11 09:44:00
板凳
我的单元格中有些数据,我现在需要设定光标停留在数据前面或者是后面,两个需求
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-6-11 16:48:00
地板
回复 3楼孙增东的帖子

可以通过自定义单元格类型来实现这个功能,参考代码:

  1.         private void Form1_Load(object sender, EventArgs e)
  2.         {
  3.             MyCellType txc = new MyCellType();
  4.             this.fpSpread1.ActiveSheet.DefaultStyle.CellType = txc;

  5.             this.fpSpread1.EditModeOn += fpSpread1_EditModeOn;

  6.             this.fpSpread1.ActiveSheet.Cells[0, 0].Text = "ffd";
  7.         }



  8.         void fpSpread1_EditModeOn(object sender, EventArgs e)
  9.         {
  10.             TextBox gceditor = this.fpSpread1.EditingControl as TextBox;
  11.             gceditor.Select(0, 0);
  12.             gceditor.BackColor = Color.Red;
  13.         }
  14.     }

  15.     public class MyCellType : FarPoint.Win.Spread.CellType.TextCellType
  16.     {
  17.         TextBox test = new TextBox();
  18.         public override Control GetEditorControl(Control parent, FarPoint.Win.Spread.Appearance appearance, float zoomFactor)
  19.         {

  20.             test.BorderStyle = BorderStyle.None;
  21.             return test;
  22.         }
  23.         public override void SetEditorValue(object value)
  24.         {
  25.             test.Text = value.ToString();
  26.         }
  27.         public override object GetEditorValue()
  28.         {
  29.             return test.Text;
  30.         }
  31.     }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部