找回密码
 立即注册

QQ登录

只需一步,快速开始

mishidemayi

高级会员

8

主题

20

帖子

1044

积分

高级会员

积分
1044

活字格认证

mishidemayi
高级会员   /  发表于:2012-7-2 11:28  /   查看:6558  /  回复:5
我现在项目中对表格控件有一些公共的操作,因此对SheetView类定义了一个子类
  1.    public class TJSheetView : SheetView
  2.     {
  3.         public TJSheetView();

  4.         public Dictionary<int, object[]> dicData { get; set; }

  5.         public void AddToDic(int row);
  6.         public int CancelRow();
  7.         public int CopyRow();
  8.         public void Data_Set(DataTable dt);
  9.         public int DeleteRow();
  10.         public decimal GetDecimal(int irow, int icol);
  11.         public bool HasEditingRow();
  12.         public int insertRow();
  13.         public int PasteRow();
  14.     }
复制代码


现在有一个麻烦的地方是,在窗体设计的时候,把控件 spread拖拽上去后,自动生成的还是
  1.             this.fpSpread1 = new FarPoint.Win.Spread.FpSpread();
  2.             this.fpSpread1_Sheet1 = new FarPoint.Win.Spread.SheetView();
复制代码


有没有办法让自动生成变为
  1.             this.fpSpread1 = new FarPoint.Win.Spread.FpSpread();
  2.             this.fpSpread1_Sheet1 = new MES.CommonControls.Client.TJSheetView();
复制代码

5 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-7-2 11:57:00
沙发
如果你希望Spread中每个SheetView都是TJSheetView,你可以重写一个自己的Spread类
回复 使用道具 举报
mishidemayi
高级会员   /  发表于:2012-7-3 08:49:00
板凳
能给些具体的代码吗?    自己也试了下,出错了
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-7-3 10:28:00
地板
mishidemayi 你好

我也调试了一下,如果你希望“从VS工具箱中添加FpSpread控件到Form上时,默认添加的SheeView是TJSheetView”,这种行为做不到。因为默认添加的SheetView是Spread控件设计时的行为,我们不能修改。

二楼中提供的方法一般可以解决添加SheetView之后,对SheetView进行一些默认设置,但是无法改变SheetView的类型为TJSheetView
  1.     public partial class TJSpread : FarPoint.Win.Spread.FpSpread
  2.     {
  3.         public TJSpread()
  4.         {
  5.             InitializeComponent();

  6.             this.Sheets.Changing += new CollectionChangeEventHandler(Sheets_Changing);
  7.             this.Sheets.Changed += new CollectionChangeEventHandler(Sheets_Changed);
  8.         }

  9.         void Sheets_Changed(object sender, CollectionChangeEventArgs e)
  10.         {
  11.             
  12.         }

  13.         void Sheets_Changing(object sender, CollectionChangeEventArgs e)
  14.         {
  15.             
  16.         }

  17.         public TJSpread(IContainer container)
  18.         {
  19.             container.Add(this);

  20.             InitializeComponent();
  21.         }
  22.     }
复制代码
回复 使用道具 举报
mishidemayi
高级会员   /  发表于:2012-7-3 10:30:00
5#
哦    谢了
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-7-3 17:49:00
6#
OK
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部