找回密码
 立即注册

QQ登录

只需一步,快速开始

keaitutu

注册会员

11

主题

33

帖子

94

积分

注册会员

积分
94

活字格认证

keaitutu
注册会员   /  发表于:2015-8-27 13:58  /   查看:8296  /  回复:9
版主你好,我现在的版本是SPREAD 7.0。
当鼠标放在行头和列头的时候显示的是箭头,放在单元格上面是那种像Excel编辑模式时的那种空心十字。
现在没有设定什么,默认就是这个效果。想把当鼠标放在行头和列头的时候也改成这种十字。
用了下面的代码:
            foreach (CursorType ct in Enum.GetValues(typeof(CursorType)))
            {
                this.sht.SetCursor(ct, Cursors.Cross);
            }
运行起来是下面十字的样子,不是像Excel编辑模式时的那种空心十字
無題.png (1.83 KB, 下载次数: 463)

9 个回复

倒序浏览
frank.zhang
社区贡献组   /  发表于:2015-8-27 17:36:00
沙发
您好,
空心的十字是Spread内置的标识,目前没有相关的接口可以使用这个空心的十字。
目前,我尝试将这个空心的十字抓到,然后在复制到需要的地方。明天会继续调查。
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-8-28 16:10:00
板凳
您好,
实现的思路是从DLL取到这个资源,然后设置到需要的地方
  1.         private void button1_Click(object sender, EventArgs e)
  2.         {
  3.             Cursor c = LoadSpreadCursor("FarPoint.Win.Spread.default.cur");
  4.             fpSpread1.SetCursor(FarPoint.Win.Spread.CursorType.ColumnHeader, c);
  5.         }

  6.         private Cursor LoadSpreadCursor(string name)
  7.         {
  8.             Assembly sourceAssembly = typeof(FarPoint.Win.Spread.FpSpread).Assembly;
  9.             Stream manifestResourceStream = sourceAssembly.GetManifestResourceStream(name);
  10.             Cursor cursor = new Cursor(manifestResourceStream);
  11.             manifestResourceStream.Close();
  12.             manifestResourceStream.Dispose();
  13.             return cursor;
  14.         }
复制代码
回复 使用道具 举报
rbgongming
论坛元老   /  发表于:2015-8-28 16:11:00
地板
回复 1楼keaitutu的帖子

你好:
你可以自定义一个Cursors,然后用FpSpread1.SetCursor(CursorType.ColumnHeader, newCursor)
的代码去设置。

评分

参与人数 1金币 +800 收起 理由
frank.zhang + 800 协助回答问题

查看全部评分

把简单的事做好就是不简单,
把平凡的事做好就是不平凡。
回复 使用道具 举报
keaitutu
注册会员   /  发表于:2015-8-28 18:46:00
5#
OK,明白了,多谢
回复 使用道具 举报
rbgongming
论坛元老   /  发表于:2015-8-28 19:16:00
6#
回复 3楼frank.zhang的帖子

版主,上面的代码变成Vb.Net怎么写?
可以告诉一下吗?
把简单的事做好就是不简单,
把平凡的事做好就是不平凡。
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-9-1 16:31:00
7#
您好,
可以使用
  1. Private Sub button1_Click(sender As Object, e As EventArgs)
  2.         Dim c As Cursor = LoadSpreadCursor("FarPoint.Win.Spread.default.cur")
  3.         fpSpread1.SetCursor(FarPoint.Win.Spread.CursorType.ColumnHeader, c)
  4. End Sub
  5. Private Function LoadSpreadCursor(name As String) As Cursor
  6.         Dim sourceAssembly As Assembly = GetType(FarPoint.Win.Spread.FpSpread).Assembly
  7.         Dim manifestResourceStream As Stream = sourceAssembly.GetManifestResourceStream(name)
  8.         Dim cursor As New Cursor(manifestResourceStream)
  9.         manifestResourceStream.Close()
  10.         manifestResourceStream.Dispose()
  11.         Return cursor
  12. End Function
复制代码

给你推荐一个工具http://www.developerfusion.com/tools/convert/vb-to-csharp/
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-9-11 09:57:00
8#
您好,
距离这个问题的最后回复已经过去了一段时间,不知道这个问题您是否已经解决?
如果没有解决,欢迎跟贴接续讨论,如果已经解决请对本次服务进行评分。
我们会认真对待你提出的宝贵意见,谢谢
回复 使用道具 举报
zztoll
初级会员   /  发表于:2016-7-8 16:01:06
9#
请问要导入Spread如图所示的鼠标形状,调用LoadSpreadCursor时该代入哪个参数呢,谢谢!
mouse.jpg
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-7-8 16:43:50
10#
如上面的例子 传递 "FarPoint.Win.Spread.default.cur"
  1.         private void button1_Click(object sender, EventArgs e)
  2.         {
  3.             Cursor c = LoadSpreadCursor("FarPoint.Win.Spread.default.cur");
  4.             fpSpread1.SetCursor(FarPoint.Win.Spread.CursorType.ColumnHeader, c);
  5.         }

  6.         private Cursor LoadSpreadCursor(string name)
  7.         {
  8.             Assembly sourceAssembly = typeof(FarPoint.Win.Spread.FpSpread).Assembly;
  9.             Stream manifestResourceStream = sourceAssembly.GetManifestResourceStream(name);
  10.             Cursor cursor = new Cursor(manifestResourceStream);
  11.             manifestResourceStream.Close();
  12.             manifestResourceStream.Dispose();
  13.             return cursor;
  14.         }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部