ComponentOne RichTextBox 实现更改鼠标形状

在本篇文章中我们将讨论如何在 C1RichBoxTextBox 中实现更改鼠标形状的功能。例如,我们的 RichTextBox 文档中包含 Paragraph 和 Table 。我们想实现当鼠标悬浮在 Table 上时改变鼠标形状,当鼠标离开 Table 时还原鼠标形状。效果图<p><img alt="MouseCursorChanging" src="http://our.componentone.com/wp-content/uploads/2013/09/MouseCursorChanging.gif" /></p>

发布于 2013/10/13 00:00

ComponentOne Enterprise

在本篇文章中我们将讨论如何在 C1RichBoxTextBox 中实现更改鼠标形状的功能。例如,我们的 RichTextBox 文档中包含 Paragraph 和 Table 。我们想实现当鼠标悬浮在 Table 上时改变鼠标形状,当鼠标离开 Table 时还原鼠标形状。

效果图

MouseCursorChanging

首先需要准备文档中显示的内容:

  1:    string myHTMLString =
  2: @"<html><head><style type='text/css'>.c0 { font-family: 'Verdana'; font-size: 18.6666666666667px } .c1 { margin: 0px 0px 12px } .c2 { font-family: 'Arial'; font-size: 13.3333333333333px } .c3 { margin: 0px 0px 10px } .c4 { border-collapse: collapse; width: 100% } .c5 { width: 33% } .c6 { border-color: Black; border-style: solid; border-width: thin; padding: 0px 7px } .c7 { margin: 0px } .c8 { font-family: 'Arial'; font-size: 13.33px } </style></head><body class='c0'><p class='c1'><span class='c2'>This table has 2 rows and 3 columns. Mouse pointer wil change to hand cursor when hovered over the table text.</span></p><p class='c3'><span class='c2'>&#x200b;</span></p><table class='c4'><col class='c5'/><col class='c5'/><col class='c5'/><tr><td class='c6'><p class='c7'>row1 col1</p></td><td class='c6'><p class='c7'>row1 col2</p></td><td class='c6'><p class='c7'>row1 col3</p></td></tr><tr><td class='c6'><p class='c7'>row2 col1</p></td><td class='c6'><p class='c7'>row2 col2</p></td><td class='c6'><p class='c7'>row2 col3</p></td></tr></table><p class='c3'><span class='c2'>&#x200b;</span></p><div><p class='c1'><span class='c8'>This table has 2 rows and 3 columns. Mouse pointer wil change to hand cursor when hovered over the table text.</span></p></div><p class='c3'><span class='c2'>&#x200b;</span></p></body></html>";

 

通过 ConvertToDocument 方法转换为 C1RichTextBox 文档内容:

  1: C1RichTextBox1.Document = C1RichTextBox1.HtmlFilter.ConvertToDocument(myHTMLString);


通过 ComponentOne RichTextBoxElementMouseMove  事件来实现鼠标形状切换功能:

  1: void C1RichTextBox1_ElementMouseMove(object sender, MouseEventArgs e)
  2:    {
  3:       var element = sender as C1TextElement;
  4:       if (element != null && element.GetParents().Any(p => p is C1Table))
  5:          {
  6:             C1RichTextBox1.Cursor = Cursors.Hand;
  7:          }
  8:       else
  9:          {
 10:              C1RichTextBox1.Cursor = Cursors.IBeam;
 11:          }
 12:    }

 

Demo 下载:

C#+VS2010+WPF+Studio for WPF 2013V2.5 点击下载

关于葡萄城

葡萄城是专业的软件开发技术和低代码平台提供商,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。葡萄城开发技术始于1980年,40余年来始终聚焦软件开发技术,有深厚的技术积累和丰富的产品线。是业界能够同时赋能软件开发和低代码开发的企业。凭借过硬的产品能力、活跃的用户社区和丰富的伙伴生态,与超过3000家合作伙伴紧密合作,产品广泛应用于信息和软件服务、制造、交通运输、建筑、金融、能源、教育、公共管理等支柱产业。

相关产品
推荐相关案例
关注微信
葡萄城社区二维码

关注“葡萄城社区”

加微信获取技术资讯

加微信获取技术资讯

想了解更多信息,请联系我们, 随时掌握技术资源和产品动态