找回密码
 立即注册

QQ登录

只需一步,快速开始

edsoft

论坛元老

40

主题

88

帖子

1万

积分

论坛元老

积分
11438

活字格认证

edsoft
论坛元老   /  发表于:2012-2-22 14:36  /   查看:6452  /  回复:3
问题说明:当按下面代码写好程序后,第一次点击单元格时,能够出现带...的小按钮,第二次无论点击任何单元格,都不再显示。请教解决办法。谢谢。

1.创建一winform应用程序,在form1中放入spread控件
2.加入下列代码:
  1.   private void Form1_Load(object sender, EventArgs e)
  2.         {

  3.             FPTextCellType t = new FPTextCellType();
  4.             fpSpread1_Sheet1.Columns.Count = 1;
  5.             fpSpread1_Sheet1.Columns[0].CellType = t;
  6.         }
复制代码


其中的FPTextCellType 为自定义类,代码如下
  1. using System;
  2. using System.Drawing;
  3. using System.Collections;
  4. using System.ComponentModel;
  5. using System.Windows.Forms;
  6. using System.Data;
  7. using FarPoint.Win.Spread;
  8. using FarPoint.Win.Spread.CellType;
  9. using System.Drawing.Printing;
  10. using FarPoint.Win;
  11. using System.Drawing.Drawing2D;
  12. using System.Globalization;
  13. using FarPoint.Win.Spread.Model;
  14. using Microsoft.Win32;
  15. namespace Test
  16. {
  17.     public class FPTextCellType : TextCellType
  18.     {

  19.        public override Control GetEditorControl(FarPoint.Win.Spread.Appearance appearance, float zoomFactor)
  20.         {

  21.             appearance.BackColor = Color.Red;
  22.             Control c = base.GetEditorControl(appearance, zoomFactor);
  23.            
  24.             ((GeneralEditor)c).ButtonStyle = ButtonStyle.PopUp;
  25.             return c;
  26.         }
  27.         protected override void FireEditorValueChanged(EventArgs e)
  28.         {
  29.             base.FireEditorValueChanged(e);
  30.         }

  31.     }
  32. }
复制代码

3 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2012-2-22 16:42:00
沙发
你好,可以在 EditModeOn 事件中设置 editor 去实现该功能,参考代码:
  1.         private void fpSpread1_EditModeOn(object sender, EventArgs e)
  2.         {
  3.             FarPoint.Win.Spread.CellType.GeneralEditor c = this.fpSpread1.EditingControl as FarPoint.Win.Spread.CellType.GeneralEditor;
  4.             c.ButtonStyle = ButtonStyle.PopUp;
  5.             c.BackColor = Color.Red;
  6.         }
复制代码
回复 使用道具 举报
edsoft
论坛元老   /  发表于:2012-2-23 00:21:00
板凳
thanks.It's Ok.
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-2-23 09:02:00
地板

回复 3# edsoft 的帖子

You're welcome.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部