找回密码
 立即注册

QQ登录

只需一步,快速开始

dc22wt

论坛元老

21

主题

95

帖子

9445

积分

论坛元老

积分
9445

活字格认证

[已处理] 表格设计求助

dc22wt
论坛元老   /  发表于:2012-6-28 17:16  /   查看:9055  /  回复:17
未命名5.jpg (54.02 KB, 下载次数: 220)

17 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-6-28 18:02:00
沙发
下面两种方法你可以参考:

1、自定义一个CellType,可以动态决定显示“查看”、“修改”、“删除”中哪一个
2、可以将最后三列做成外观看上去像一列一样,也就是将列之间的线隐藏起来,并且将第一行的三个单元格进行合并,设置为“操作”(个人比较偏向于这种方案)
回复 使用道具 举报
dc22wt
论坛元老   /  发表于:2012-6-29 09:26:00
板凳
麻烦给个例子或写下代码,谢谢
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-6-29 11:35:00
地板
第二种方法的代码:
  1.         private void Form1_Load(object sender, EventArgs e)
  2.         {
  3.             fpSpread1.Sheets[0].ColumnCount = 10;
  4.             fpSpread1.Sheets[0].RowCount = 20;

  5.             // 设置最后三列之间的边线不显示
  6.             fpSpread1.Sheets[0].VerticalGridLine = new FarPoint.Win.Spread.GridLine(FarPoint.Win.Spread.GridLineType.None);
  7.             FarPoint.Win.LineBorder border = new FarPoint.Win.LineBorder(Color.LightGray, 1, false, false, true, true);
  8.             fpSpread1.Sheets[0].Columns[0, fpSpread1.Sheets[0].Columns.Count - 4].Border = border;

  9.             fpSpread1.Sheets[0].Cells[0, 7].Text = "操作";
  10.             fpSpread1.Sheets[0].Cells[0, 7].ColumnSpan = 3;
  11.             fpSpread1.Sheets[0].Cells[0, 7].VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
  12.             fpSpread1.Sheets[0].Columns[7, 9].HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center;
  13.             fpSpread1.Sheets[0].Columns[7, 9].ForeColor = Color.FromArgb(180,0,0);

  14.             for (int i = 1; i < fpSpread1.Sheets[0].Rows.Count; i++)
  15.             {
  16.                 fpSpread1.Sheets[0].Cells[i, 7].Text = "修改";
  17.                 fpSpread1.Sheets[0].Cells[i, 8].Text = "删除";
  18.                 fpSpread1.Sheets[0].Cells[i, 9].Text = "查看";
  19.             }            
  20.         }
复制代码
回复 使用道具 举报
dc22wt
论坛元老   /  发表于:2012-6-29 15:39:00
5#
未命名6.jpg (38.74 KB, 下载次数: 206)
回复 使用道具 举报
dc22wt
论坛元老   /  发表于:2012-6-29 16:02:00
6#
或则说,我需要当把鼠标移在操作的那一列的文本上会出现有链接的提示,而且我怎么才可以通过点击操作列里的文本进行事件触发
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-6-29 16:57:00
7#
HyperLinkCellType的使用方法如下:
  1.     FarPoint.Win.Spread.CellType.HyperLinkCellType link = new FarPoint.Win.Spread.CellType.HyperLinkCellType();
  2.     link.Text = "查看 修改 删除";
  3.     link.Links = new string[] { "#", "#", "#" };
  4.     link.LinkAreas = new LinkArea[] { new LinkArea(0, 2), new LinkArea(3, 2), new LinkArea(6, 2) };
  5.     fpSpread1.ActiveSheet.Columns[1].Width = 150;            
  6.     fpSpread1.ActiveSheet.Columns[1].CellType = link;
  7.     fpSpread1.ActiveSheet.Columns[1].HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center;
复制代码


个人建议,该功能使用HyperLinkCellType不是很理想,HyperLinkCellType 点击之后会弹出IE浏览器,还是建议使用使用2楼中提到的两种方法。
回复 使用道具 举报
dc22wt
论坛元老   /  发表于:2012-6-29 17:09:00
8#
关键是怎么用到那个触发事件啊?就是说我点了查看他就会出来一个窗口
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-6-29 17:39:00
9#
你可以使用Spread的CellClick事件,如果点击的是查看单元格,就New Form(),然后ShowDialog()就可以了。
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-6-29 17:40:00
10#
如果你觉还不是很清楚,我可以做一个简单的Demo演示一下。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部