找回密码
 立即注册

QQ登录

只需一步,快速开始

Hjr2350
论坛元老   /  发表于:2013-4-11 17:08  /   查看:11402  /  回复:10
想请教一下
未命名.JPG (1.91 KB, 下载次数: 1256)

10 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2013-4-11 17:51:00
沙发
回复 1楼Hjr2350的帖子

Hjr2350 你好,

Spread 本身不具备该功能。
可以通过自定义实现,可以捕捉鼠标 Press、Move、Up 等事件,控制 Cursor 形状。等操作模拟该方法。
回复 使用道具 举报
Hjr2350
论坛元老   /  发表于:2013-4-12 09:50:00
板凳
还有一个问题。
如果我想给checkbox类型的单元格设置TextTip响应,我发现当我鼠标悬停在单元格上不能响应;似乎只是支持text类型单元格的texttip响应。
我又试了一下,设置Note属性来进行该效果的显示,我发现当我AllowDrop为True时,对“选中”单元格Note不能显示。

我现在想实现的效果是,对checkbox类型的单元格,鼠标悬停一段时间后显示某些注释信息。
如何实现?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-4-12 16:20:00
地板
回复 3楼Hjr2350的帖子

你好,
请使用以下代码测试:

  1. private void Form1_Load(object sender, EventArgs e)
  2.         {
  3.             FarPoint.Win.Spread.CellType.CheckBoxCellType ckbxcell = new FarPoint.Win.Spread.CellType.CheckBoxCellType();
  4.             ckbxcell.TextAlign = FarPoint.Win.ButtonTextAlign.TextRightPictLeft;
  5.             ckbxcell.Caption = "Item Selected?";
  6.             fpSpread1.Sheets[0].Cells[0, 0].CellType = ckbxcell;

  7.             FarPoint.Win.Spread.Cell acell;
  8.             acell = fpSpread1.ActiveSheet.Cells[0, 0];
  9.             fpSpread1.ActiveSheet.Cells[0, 0].Text = "Note Test";
  10.             acell.Note = "This is a note";
  11.             fpSpread1.Sheets[0].Cells[0, 0, 3, 3].NoteStyle = FarPoint.Win.Spread.NoteStyle.PopupStickyNote;

  12.             this.fpSpread1.AllowDrop = true;
  13.         }

  14.         private void fpSpread1_MouseMove(object sender, MouseEventArgs e)
  15.         {
  16.             FarPoint.Win.Spread.HitTestInformation test = fpSpread1.HitTest(e.X, e.Y);

  17.             if (test==null||test.ViewportInfo==null)
  18.             {
  19.                 return;
  20.             }
  21.             int row = test.ViewportInfo.Row;
  22.             int col = test.ViewportInfo.Column;

  23.             if (row==0&&col==0)
  24.             {
  25.                 fpSpread1.Sheets[0].Cells[0, 0, 1, 1].NoteStyle = FarPoint.Win.Spread.NoteStyle.StickyNote;
  26.             }
  27.             else
  28.             {
  29.                 fpSpread1.Sheets[0].Cells[0, 0, 1, 1].NoteStyle = FarPoint.Win.Spread.NoteStyle.Hidden;
  30.             }
  31.         }
复制代码
回复 使用道具 举报
Hjr2350
论坛元老   /  发表于:2013-4-12 18:26:00
5#
回复 4楼iceman的帖子

你这样设置确实解决我说的问题了,谢谢
但是我发现还有一个问题
  1.         private void fpSpread1_TextTipFetch(object sender, TextTipFetchEventArgs e)
  2.         {
  3.             if (e.FetchCellNote)
  4.             {
  5.                 e.TipWidth = 500;
  6.             }
  7.         }
复制代码

原来我通过以上代码来进行CellNote的显示宽度的设置,但是现在如果用你上面给我的代码的话,fpSpread1_TextTipFetch()不会被执行
如果我想改变CellNote的显示宽度如何进行设置,求教~~
麻烦了,谢谢
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-4-15 15:28:00
6#
回复 5楼Hjr2350的帖子

设置 note 大小方法如下:

  1.           FarPoint.Win.Spread.DrawingSpace.StickyNoteStyleInfo nsinfo = new FarPoint.Win.Spread.DrawingSpace.StickyNoteStyleInfo();
  2.             nsinfo = fpSpread1.Sheets[0].GetStickyNoteStyleInfo(0, 0);
  3.             nsinfo.BackColor = Color.Bisque;
  4.             nsinfo.Font = new Font("Tahoma", 24);
  5.             nsinfo.ForeColor = Color.Cyan;
  6.             nsinfo.Width = 320;
  7.             nsinfo.ShapeOutlineColor = Color.Cyan;
  8.             nsinfo.ShapeOutlineThickness = 1;
  9.             nsinfo.ShadowOffsetX = 3;
  10.             nsinfo.ShadowOffsetY = 3;
  11.             fpSpread1.Sheets[0].SetStickyNoteStyleInfo(0, 0, nsinfo);
复制代码
回复 使用道具 举报
Hjr2350
论坛元老   /  发表于:2013-4-15 16:16:00
7#
如果我想对NoteStyle.PopupNote这样的note进行设置,可以吗?
我好像只是找到了StickyNote对应的StickyNoteStyleInfo
PopupNote对应的是哪个类?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-4-15 17:55:00
8#
回复 7楼Hjr2350的帖子

Hjr2350 你好,
目前没有针对 PopupNote 的设置类,该问题我正在调查中,有结果尽快回复。
回复 使用道具 举报
Hjr2350
论坛元老   /  发表于:2013-4-16 08:59:00
9#
谢谢你这些天的帮助
期待你的回复,如果有结果也请告诉我
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-4-16 19:21:00
10#
回复 9楼Hjr2350的帖子

恩,不客气。
该问题我已经提交,有结果会及时回复。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部