TX Text Control文字处理教程(8)使用超链接

本章节将演示如何在文档中添加超链接和锚点,以及如何响应超链接的单击操作。
本章节相应的源代码可以在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试用版下载

时间: 2024-09-12 08:11:17

TX Text Control文字处理教程(8)使用超链接的相关文章

TX Text Control文字处理教程(5)数据库操作

TX Text Control可以与任意数据库建立连接,并将进行格式化文本的存储.你可以将整个文档当做一条数据进行保存,同时也可以将文本从数据库中加载到一个单元格或者标记文本域中.一些典型的应用系统通常拥有以下功能,邮件合并.报表生成.格式化数据掩码输入,而且在商业应用系统中都是通过数据库中的信息来生成相应的文档. 本章将演示如何将Text Control中的内容以RTF格式的文本存储到数据库中.本章节相应的源代码可以在TX Text Control.NET的安装目录中找到: Samples\W

TX Text Control文字处理教程(12)MS Word中字段的导入导出操作

Text Control 中的域可以与MS Word中的域进行相互的导入和导出操作,Text Control中的ApplicationField类为获取/设置域的数据/参数提供了相应的公共接口.下面将结合MS Word中最常用的MERGEFIELD 和 FORMTEXTBOX功能来讲解域相关的操作. 相应的源代码可以在TX Text Control.NET的安装目录中找到:         Samples\WinForms\VB.NET\ ApplicationFields        

TX Text Control文字处理教程(10)创建报价单

该示例程序演示如何在办公系统中使用Text Control.办公系统的主要功能就是根据数据库中的数据来创建所需的文档.例如,根据地址信息数据库和商品信息数据库来创建一个订单.         示例程序分两步完成,第一步只包含从地址信息数据库中取的数据,第二步中才添加其它的功能. 本章节相应的源代码可以在TX Text Control.NET的安装目录中找到:         Samples\WinForms\VB.NET\ Quote Generator         Samples\Wi

TX Text Control文字处理教程(2)- 文件操作

本章主要演示如何使用 TX Text Control .NET 加载和保存文件. 该章节相应的源代码可以在TX Text Control.NET的安装目录中找到:         Samples\WinForms\VB.NET\ Files         Samples\WinForms\CSharp\ Files 第一节:使用集成对话框 打开和保存文件最便捷的方法就是调用Load和Save方法,而且无需传入任何参数.通过这种方法,只需一行代码就可以打开文件对话框,选择文件类型和文件之后就

TX Text Control文字处理教程(1)- 使用Visual Studio 2008开发产品

本章主要演示如何使用TX Text Control.NET 快速开发一个文字处理器. 该文字处理器实现了以下功能,打开和保存文件.剪贴板操作.文字和段落格式设置.标尺.状态栏以及键盘和鼠标操作. 该章节相应的源代码可以在TX Text Control.NET的安装目录中找到:         Samples\WinForms\VB.NET\Simple         Samples\WinForms\CSharp\Simple 该章节使用的到的控件如下:         TXTextCo

TX Text Control文字处理教程(4)标记文本域

标记文本域是在文本中插入的一些标记,在文字处理器中可以通过标记文本来实现非常广泛的文字处理功能.例如:         邮件合并         电子表格中的计算域         书签         自动生成表格内容和索引         超文本链接和锚点 标记文本域可以由任意字符组合而成,TX 中最多可以包含65535个标记文本域,TX会维护这些文本域的位置和编号信息,同时还可以进行加载.保存和剪贴板操作. 该章节相应的源代码可以在TX Text Control.NET的安装目录中找到:

TX Text Control文字处理教程(9)XML文件

该章节主要介绍如何在Text Control中使用XML文件,包括如何打开XML文件,以及如何与CSS文件及DTD文件协同工作. 本章节相应的源代码可以在TX Text Control.NET的安装目录中找到:         Samples\WinForms\VB.NET\ XMLBasics         Samples\WinForms\CSharp\ XMLBasics (一)示例程序 示例程序中只有一个[Open File...]菜单项,源代码与其它Text Control程序并

TX Text Control文字处理教程(6)通过代码编辑和格式化文本

在许多应用系统中通过代码来编辑文本是一个必不可少的功能,例如:将多个小文件与数据库数据合并生成报表.电子购物时需要创建订单并作为HTML文件进行发送.使用Text Control,这些操作可以使用鼠标操作或者编码的方式很容易的实现. 本章节相应的源代码可以在TX Text Control.NET的安装目录中找到: Samples\WinForms\VB.NET\ Editing from code Samples\WinForms\CSharp\ Editing from code 第一节:选择

TX Text Control文字处理教程(7)邮件合并

邮件合并功能与之前的提到的将TX文档全部存入数据库有所不同,邮件合并功能是将数据库中特定字段插入到模板文档的特定位置.与此同时,本章节还会演示在邮件合并功能的基础上添加打印功能.以及如何创建邮件合并所需的模板文档. 本章节相应的源代码可以在TX Text Control.NET的安装目录中找到:         Samples\WinForms\VB.NET\MailMerge         Samples\WinForms\CSharp\MailMerge 第一步:合并数据库数据和文本