热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

TXTextControl文字处理教程(8)使用超链接

本章节将演示如何在文档中添加超链接和锚点,以及如何响应超链接的单击操作。本章节相应的源代码可以在TXTextControl.NET的安装目录中找到:S

本章节将演示如何在文档中添加超链接和锚点,以及如何响应超链接的单击操作。
本章节相应的源代码可以在TX Text Control.NET的安装目录中找到:
        Samples\WinForms\VB.NET\ Hyperlinks
        Samples\WinForms\CSharp\ Hyperlinks
第一步:插入超链接
        在这个示例程序中将在文档里插入一个超链接,并将该文档保存为HTML格式,便于在浏览器中显示。

        为了在文档中插入超链接,首先需要创建一个HypertextLink的实例,创建实例时传入 ”Text Control Web Site” 和 ” http://www.gcpowertools.com.cn” 作为参数。 HypertextLink实例被插入到当前光标所在的位置,并被添加到HypertextLinks集合中。

1 [C#]
2 private void cmdInsertHyperlink_Click(object sender, System.EventArgs e)
3 {
4 // Create a HypertextLink object
5 TXTextControl.HypertextLink MyLink =
6 new TXTextControl.HypertextLink(
7 "Text Control Web Site",
8 "http://www.gcpowertools.com.cn");
9 // Insert the hyperlink into the document
10 textControl1.HypertextLinks.Add(MyLink);
11 }

 

需要注意的是上面的例子并没有处理Click事件,所以点击超链接时并没有跳转到指定的网页,而且超链接也没有蓝色下划线的字体样式。事件处理以及显示样式将在第二步中完成。
        下面调用TextControl.Save方法来讲文档保存为HTML格式的文件:

1 [C#]
2 private void cmdSaveAs_Click(object sender, System.EventArgs e)
3 {
4 textControl1.Save(TXTextControl.StreamType.HTMLFormat);
5 }

 

使用浏览器打开刚才保存的HTML文件,可以看到刚才添加的超链接

第二步:为新建超链接添加对话框
在第二个示例程序中,添加了一个对话框,这样就可以更方便的创建超链接。除此之外,还可以对之前插入的超链接进行编辑和修改。需要注意的是,超链接通常是和HTML文件相关联,不过超链接还可以保存在RTF、微软Word文件以及TX Text Control格式的文件中。

        新添加的对话框包含两个文本框,第一个是设置超链接显示的文本信息,第二个用于设置超链接对应的链接地址。该对话框可用于创建超链接和编辑超链接,如果光标所在的位置是一个超链接则进行编辑操作,否则用于创建新的超链接。

1 [C#]
2 private void mnuInsert_Hyperlink_Click(object sender, System.EventArgs e)
3 {
4 frmHyperlinks Hyperlinks = new frmHyperlinks();
5 Hyperlinks.tx = textControl1;
6 Hyperlinks.ShowDialog();
7 HighlightHyperlinks (textControl1, mnuView_Hyperlinks.Checked);
8 }

 

当该对话框加载时会根据当前输入位置来决定链接文本和链接地址中应该显示的信息:

1 [C#]
2 private void frmHyperlinks_Load(object sender, System.EventArgs e)
3 {
4 TXTextControl.HypertextLink HyperLink = tx.HypertextLinks.GetItem();
5 if (HyperLink != null)
6 {
7 // If there is an existing hypertext link at the input position,
8 // copy its text and target to the text boxes on the form.
9 txtLinkedText.Text = HyperLink.Text;
10 txtLinkTo.Text = HyperLink.Target;
11 }
12 else
13 {
14 // If there is no hypertext link at the input position, but
15 // some text has been selected, then copy this text to the
16 // Linked Text text box.
17 if (tx.Selection.Length > 0)
18 txtLinkedText.Text = tx.Selection.Text;
19 }
20 }

 

用户修改链接文本和链接地址之后点击【OK】按钮,输入的信息将被更新到文档中:

1 [C#]
2 private void cmdOK_Click(object sender, System.EventArgs e)
3 {
4 TXTextControl.HypertextLink HyperLink = tx.HypertextLinks.GetItem();
5 if (HyperLink == null)
6 {
7 // Insert a new link
8 TXTextControl.HypertextLink NewLink =
9 new TXTextControl.HypertextLink(
10 txtLinkedText.Text , txtLinkTo.Text);
11 tx.HypertextLinks.Add(NewLink);
12 }
13 else
14 {
15 // Update an existing link
16 HyperLink.Text = txtLinkedText.Text;
17 HyperLink.Target = txtLinkTo.Text;
18 }
19 Close();
20 }

 

最后,添加一个【View】菜单项用于设置超链接文字的格式,包括蓝色字体和下划线样式:

1 [C#]
2 void HighlightHyperlinks(TXTextControl.TextControl tx, bool bHighlight)
3 {
4 int PreviousStart = tx.Selection.Start,
5 PreviousLength = tx.Selection.Length;
6
7 foreach (TXTextControl.HypertextLink Link in tx.HypertextLinks)
8 {
9 tx.Selection.Start = Link.Start-1;
10 tx.Selection.Length = Link.Length;
11 if (bHighlight)
12 {
13 tx.Selection.ForeColor = Color.Blue;
14 tx.Selection.Underline = TXTextControl.FontUnderlineStyle.Single;
15 }
16 else
17 {
18 tx.Selection.ForeColor = Color.Black;
19 tx.Selection.Underline = TXTextControl.FontUnderlineStyle.None;
20 }
21 }
22 tx.Selection.Start = PreviousStart;
23 tx.Selection.Length = PreviousLength;
24 }

 

 

第三步:添加文档锚点
        在第一和第二步中使用的链接地址都是外部资源,在该示例中讨论如何链接到文档中的某个位置。这些链接叫做文档链接,而这些被指定的位置叫做文档目标,文档目标在HTML编辑器中也被当做锚点、在字处理器中被当做书签来使用。
        在运行示例程序时,在文档添加一些文本,然后再通过Insert / Target来添加一些文档目标。

        通过Insert / Hypertext Link 菜单为这些文档目标添加链接,之前添加的文档目标的名字将被显示在链接位置的下拉框中。

插入目标
通过给DocumentTargets集合添加一个DocumentTarget对象的方式来添加文档目标。与链接不同的是,文档目标没有可见的文本,所以其构造函数只有一个参数。

1 [C#]
2 TXTextControl.DocumentTarget Target =
3 new TXTextControl.DocumentTarget(InsertTarget.TargetName);
4 textControl1.DocumentTargets.Add(Target);

 

为目标添加链接
需要对步骤二中使用的【Hypertext Link】对话框进行扩展,因为,链接目标不仅可以设置为URL,还可以设置为文档目标。将之前的【Link To】文本框替换为一个下拉框,下拉框中显示的DocumentTargets集合中的目标对象。

1 [C#]
2 foreach (TXTextControl.DocumentTarget Target in tx.DocumentTargets)
3 cboLinkTo.Items.Add("#" + Target.TargetName);

 

跳转到目标
当点击文档中的链接时,文本区域应该滚动的链接对应的目标所在的位置。该功能可以在DocumentLinkClicked事件中调用ScrollTo方法来实现:

1 [C#]
2 private void textControl1_DocumentLinkClicked(object sender,
3 TXTextControl.DocumentLinkEventArgs e)
4 {
5 e.DocumentLink.DocumentTarget.ScrollTo();
6 }

 

显示和编辑目标
TX Text Control可以通过显示一个标识来指明文档目标所在的位置。但是,如果目标不可见,怎样才能在文档中来定位这些目标呢?解决办法是使用一个列表框来显示文档中的全部目标对象,你可以跳转到指定的目标,或者将其删除。

 

 

TX Text Control试用版下载

本文出自 “葡萄城控件技术团队博客” 博客,请务必保留此出处http://powertoolsteam.blog.51cto.com/2369428/774548


推荐阅读
  • mongodb复制集部署文档 ... [详细]
  • 本文分析和介绍了GLo ... [详细]
  • 标签PostgreSQL,Linux,perf,性能诊断,stap,systemtap,strace,dtrace,dwarf,profiler,perf_events,probe ... [详细]
  • 插入元素的方法,注意的是:list为child的时候才能够插入到元素中varnewChilddocument.createElement(A);newC ... [详细]
  • 转自:http:malideveloper.arm.comcndevelop-for-malisample-codeetcv1-texture-compression-and-alpha- ... [详细]
  • crossorigin注解添加了解决不了跨域问题_CORS与@CrossOrigin详解
    1、跨域的基本概念a、跨域的解释要了解跨域,首先需要知晓浏览器的同源策略,简单的说就是两个请求协议、端口、主机都相同,则两个请求具有相同的 ... [详细]
  • delphi控件大全
    本文章已收录于:delphi控件查询:http:www.torry.nethttp:www.jrsoftware.orgTb97最有名的工具条(ToolBar) ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了mysql中的索引相关的知识,希望对你有一定的参考价值。什么是索引: ... [详细]
  • 开发笔记:Python之父重回决策层
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Python之父重回决策层相关的知识,希望对你有一定的参考价值。在GuidovanRossum(吉多· ... [详细]
  • 作业迁移
    背景:数据库服务器更换,1、数据库迁移(BACKUPRESTORE);2、数据库登录名用户迁移(注意孤立用户);3、作业迁移数据库迁移,备份数据库、拷贝备份文件到新服务器,还原数据 ... [详细]
  • FF——————————–直接使用document.creatRange()来创建一个选区;默认是空的;使用selectNode(obj)来代替moveToElementText ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • python基础(二、pycharm安装、卸载)
    3.在Ubuntu中安装PyCharmPyCharm的官方网站地址是:https:www.jetbrains.compycharm注意:安装时不要使用root用户安装,否则后期使用 ... [详细]
  • 存一下吧……以后有用……http:blog.csdn.netclove_uniquearticledetails50630280转载于:https:www.cnblogs.comk ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了MongoDB快速入门教程(4.1)相关的知识,希望对你有一定的参考价值。4 ... [详细]
author-avatar
芬妮诗婚纱厂
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有