找回密码
 立即注册

QQ登录

只需一步,快速开始

laonawuli

银牌会员

39

主题

146

帖子

3383

积分

银牌会员

积分
3383

活字格认证

laonawuli
银牌会员   /  发表于:2011-11-25 14:41  /   查看:7261  /  回复:5
如题,就好像在vs2005打开的那种设计器一样。
只需要设置span和border这两种功能,不知道有什么好的解决方案没有?

5 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2011-11-25 15:51:00
沙发

回复 1# laonawuli 的帖子

你好,在运行时可以通过以下代码调用 Spread 设计器,进行设计,应用并并且退出:

  1.        private void button1_Click(object sender, EventArgs e)
  2.     {
  3.         FarPoint.Win.Spread.Design.DesignerMain designer = new FarPoint.Win.Spread.Design.DesignerMain(this.fpSpread1);
  4.         designer.ShowDialog();
  5.     }
复制代码
该类在 FarPoint.Win.Spread.Design dll 下。
回复 使用道具 举报
laonawuli
银牌会员   /  发表于:2011-11-25 16:09:00
板凳
原帖由 iceman 于 2011-11-25 15:51:00 发表
你好,在运行时可以通过以下代码调用 Spread 设计器,进行设计,应用并并且退出:[code]
       private void button1_Click(object sender, EventArgs e)
    {
        FarPoint.Win.Spread.Design.DesignerMain designer = new FarPoint.Win.Spre


我知道这个方法,我想自己实现这个功能。
我目前的思路是Span功能: 获得所有selectedCells 然后 从左上角为原点 往右、下延伸。
Border功能 也是从selectedCells来实现。

不知道iceman有什么更好的建议吗?期待中~
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2011-11-25 16:15:00
地板

回复 3# laonawuli 的帖子

laonawuli 你好,我的思路和你大体相同:
1. 通过 Spread   SelectionChanged 事件获取当前 CellRange 信息。
2. 通过 SheetView 下的 SetOutlineBorder() 方法和 AddSpanCell() 方法去添加 Border 和   SpanCell。
3. 再结合 ColorDialog 等标准控件去实现。
回复 使用道具 举报
laonawuli
银牌会员   /  发表于:2011-11-25 16:48:00
5#
原帖由 iceman 于 2011-11-25 16:15:00 发表
laonawuli 你好,我的思路和你大体相同:
1. 通过 Spread   SelectionChanged 事件获取当前 CellRange 信息。
2. 通过 SheetView 下的 SetOutlineBorder() 方法和 AddSpanCell() 方法去添加 Border 和   SpanCell。
3. 再结合 ColorDialog 等标准控件去实现。


呵呵 多谢 我会参照来实现~

另外,请问iceman大侠,如何实现一个斜线呢?你应该知道有一种表格样式,最左上角的正方形中有个斜线,斜线上方写一个内容,斜线下方写一个内容。。请问这个怎么实现呢?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2011-11-25 17:28:00
6#
laonawuli 你好,有两种方式可以实现该功能:
1. 使用设计器添加直线,应用并退出。
2. 应用代码实现:

  1.   int width =(int) (this.fpSpread1.ActiveSheet.Columns[0].Width + this.fpSpread1.ActiveSheet.Columns[1].Width) ;
  2.             int height =(int)( this.fpSpread1.ActiveSheet.Rows[0].Height + this.fpSpread1.ActiveSheet.Rows[1].Height);
  3.             FarPoint.Win.Spread.DrawingSpace.LineShape line = new FarPoint.Win.Spread.DrawingSpace.LineShape();
  4.             line.Name = "mark";
  5.             line.ShapeOutlineColor = Color.Red;
  6.             line.SetBounds(0, 0, width, height);
  7.             line.StartCap = System.Drawing.Drawing2D.LineCap.RoundAnchor;
  8.             this.fpSpread1.ActiveSheet.AddShape(line);
复制代码
效果图

png

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