控件中国网现已改版,您看到的是老版本网站的镜像,系统正在为您跳转到新网站首页,请稍候.......
中国最专业的商业控件资讯网产品咨询电话:023-67870900 023-67871946
产品咨询EMAIL:SALES@COMPONENTCN.COM

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

作者:佚名 出处:cnblogs 2012年03月19日 阅读:

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集合中。

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


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

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


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

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

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

 [C#]
 private void mnuInsert_Hyperlink_Click(object sender, System.EventArgs e)
 {
     frmHyperlinks Hyperlinks = new frmHyperlinks();
     Hyperlinks.tx = textControl1;
     Hyperlinks.ShowDialog();
     HighlightHyperlinks (textControl1, mnuView_Hyperlinks.Checked);
 }


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

 [C#]
  private void frmHyperlinks_Load(object sender, System.EventArgs e)
  {
      TXTextControl.HypertextLink HyperLink = tx.HypertextLinks.GetItem();
     if (HyperLink != null)
     {
         // If there is an existing hypertext link at the input position,
  // copy its text and target to the text boxes on the form.
          txtLinkedText.Text = HyperLink.Text;
         txtLinkTo.Text = HyperLink.Target;
     }
     else
     {
         // If there is no hypertext link at the input position, but
// some text has been selected, then copy this text to the
// Linked Text text box.
         if  (tx.Selection.Length > 0)  
            txtLinkedText.Text = tx.Selection.Text;
     }
 }


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

 [C#]
  private void cmdOK_Click(object sender, System.EventArgs e)
  {
     TXTextControl.HypertextLink HyperLink = tx.HypertextLinks.GetItem();
     if (HyperLink == null)
     {
          // Insert a new link
         TXTextControl.HypertextLink NewLink =
              new TXTextControl.HypertextLink(
             txtLinkedText.Text , txtLinkTo.Text);
         tx.HypertextLinks.Add(NewLink);
     }
     else
     {
         // Update an existing link
         HyperLink.Text = txtLinkedText.Text;
        HyperLink.Target = txtLinkTo.Text;
     }
    Close();
 }





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

 [C#]
  void HighlightHyperlinks(TXTextControl.TextControl tx, bool bHighlight)
  {
      int PreviousStart = tx.Selection.Start,
          PreviousLength = tx.Selection.Length;
 
      foreach (TXTextControl.HypertextLink Link in tx.HypertextLinks)
      {
          tx.Selection.Start = Link.Start-1;
         tx.Selection.Length = Link.Length;
         if (bHighlight)
         {
            tx.Selection.ForeColor = Color.Blue;
             tx.Selection.Underline = TXTextControl.FontUnderlineStyle.Single;
         }
         else
         {
             tx.Selection.ForeColor = Color.Black;
             tx.Selection.Underline = TXTextControl.FontUnderlineStyle.None;
         }
     }
     tx.Selection.Start = PreviousStart;
     tx.Selection.Length = PreviousLength;
 }


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

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

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

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


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

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

跳转到目标
当点击文档中的链接时,文本区域应该滚动的链接对应的目标所在的位置。该功能可以在DocumentLinkClicked事件中调用ScrollTo方法来实现:
 [C#]
private void textControl1_DocumentLinkClicked(object sender,
    TXTextControl.DocumentLinkEventArgs e)  {
    e.DocumentLink.DocumentTarget.ScrollTo();
}


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

热推产品

  • ActiveReport... 强大的.NET报表设计、浏览、打印、转换控件,可以同时用于WindowsForms谀坔攀戀Forms平台下......
  • AnyChart AnyChart使你可以创建出绚丽的交互式的Flash和HTML5的图表和仪表控件。可以用于仪表盘的创......
首页 | 新闻中心 | 产品中心 | 技术文档 | 友情连接 | 关于磐岩 | 技术支持中心 | 联系我们 | 帮助中心 Copyright-2006 ComponentCN.com all rights reserved.重庆磐岩科技有限公司(控件中国网) 版权所有 电话:023 - 67870900 传真:023 - 67870270 产品咨询:sales@componentcn.com 渝ICP备12000264号 法律顾问:元炳律师事务所 重庆市江北区塔坪36号维丰创意绿苑A座28-5 邮编:400020
在线客服
在线客服系统
在线客服
在线客服系统