找回密码
 立即注册

QQ登录

只需一步,快速开始

774828727

银牌会员

12

主题

76

帖子

2972

积分

银牌会员

积分
2972

活字格认证

774828727
银牌会员   /  发表于:2013-11-21 14:55  /   查看:13938  /  回复:15
20金币
0000000000000.jpg (52.44 KB, 下载次数: 2442)

最佳答案

查看完整内容

回复 5楼774828727的帖子 先给分吧

15 个回复

倒序浏览
最佳答案
最佳答案
iceman
社区贡献组   /  发表于:2013-11-21 14:55:01
来自 6#
回复 5楼774828727的帖子

先给分吧
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-11-21 15:45:00
2#
是想实现 Spread 设计器中的单元格样式设置属性框吧?请使用以下代码测试:

  1. private void Form1_Load(object sender, EventArgs e)
  2.         {
  3.             this.fpSpread1.CellClick += new FarPoint.Win.Spread.CellClickEventHandler(fpSpread1_CellClick);
  4.             this.propertyGrid1.SelectedObject = this.fpSpread1.Sheets[0].Cells[0, 0];
  5.         }

  6.         void fpSpread1_CellClick(object sender, FarPoint.Win.Spread.CellClickEventArgs e)
  7.         {
  8.             this.propertyGrid1.SelectedObject = this.fpSpread1.Sheets[0].Cells[e.Row, e.Column];
  9.         }
复制代码
回复 使用道具 举报
774828727
银牌会员   /  发表于:2013-11-21 16:00:00
3#
这个我用了 很不错,但是我的那个给改变的时候为什么只是改变了选中区域的开始的那个格子,
比如说我改变一块[0,0]-[2,2]区域的背景色,结果只改变了[0,0]的背景色其他的没变呢
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-11-21 16:16:00
4#
回复 3楼774828727的帖子

这个用例就需要多写写代码自定义了。CellRange 并没有暴露背景色等属性,所以最小的操作单位是 Cell:

  1. private void Form1_Load(object sender, EventArgs e)
  2.         {
  3.             this.fpSpread1.CellClick += new FarPoint.Win.Spread.CellClickEventHandler(fpSpread1_CellClick);
  4.             this.fpSpread1.SelectionChanged += new FarPoint.Win.Spread.SelectionChangedEventHandler(fpSpread1_SelectionChanged);
  5.             this.propertyGrid1.SelectedObject = this.fpSpread1.Sheets[0].Cells[0, 0];
  6.             this.propertyGrid1.PropertyValueChanged += new PropertyValueChangedEventHandler(propertyGrid1_PropertyValueChanged);
  7.         }

  8.         CellRange cr = new CellRange(0, 0, 1, 1);
  9.         void propertyGrid1_PropertyValueChanged(object s, PropertyValueChangedEventArgs e)
  10.         {
  11.             if (e.ChangedItem.Label=="BackColor")
  12.             {
  13.                 int rowCount = cr.RowCount;
  14.                 int colCount = cr.ColumnCount;
  15.                 for (int i = 0; i < rowCount; i++)
  16.                 {
  17.                     for (int j = 0; j < colCount; j++)
  18.                     {
  19.                         this.fpSpread1.ActiveSheet.Cells[cr.Row + i, cr.Column + j].BackColor = ((System.Drawing.Color)(e.ChangedItem.Value));
  20.                     }
  21.                 }
  22.             }
  23.         }

  24.         void fpSpread1_SelectionChanged(object sender, FarPoint.Win.Spread.SelectionChangedEventArgs e)
  25.         {
  26.             cr =e.Range;
  27.         }

  28.         void fpSpread1_CellClick(object sender, FarPoint.Win.Spread.CellClickEventArgs e)
  29.         {
  30.             this.propertyGrid1.SelectedObject = this.fpSpread1.Sheets[0].Cells[e.Row, e.Column];
  31.         }
复制代码

如果还有其他需求,就按照这个思路实现即可。
回复 使用道具 举报
774828727
银牌会员   /  发表于:2013-11-21 16:27:00
5#
谢了, 我先研究下
回复 使用道具 举报
774828727
银牌会员   /  发表于:2013-11-22 08:47:00
7#
分咋给呢,我咋找不见那个摁钮呢。...
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-11-22 09:37:00
8#
回复 7楼774828727的帖子

1# 右下角有个结贴,点击下,把分给我就好了。刚刚那个 20 分给你了。哈哈
回复 使用道具 举报
774828727
银牌会员   /  发表于:2013-11-22 09:49:00
9#
OK了没?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-11-22 09:50:00
10#
回复 9楼774828727的帖子

OK~
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部