【问题标题】:Create a hyperlink from a text file in C#在 C# 中从文本文件创建超链接
【发布时间】:2015-09-29 12:17:15
【问题描述】:

我有一个 C# 项目(Win Forms),其中一个表单读取外部文本文件,然后将文本放入表单的文本框中。我想做的是从程序读取的文本中创建一个超链接。

例如,如果文本文件显示“To go to Google, click HERE [www.google.com]”,那么我希望程序使“HERE”可点击,如果 HERE 则转到 www.google.com被点击。

现在程序可以读取文本文件并很好地识别网址。我只是不知道如何让“HERE”成为可点击的。

注意:由于外部因素,我无法制作按钮、LinkLabel 或其他对象供用户点击。这个词本身必须是超链接(如果可能的话)。另外,我必须从外部文件中读取字符串。我不能简单地把 textBox1.Text = "To go to Google, click HERE [www.google.com]";

提前致谢!

【问题讨论】:

  • 我看过 RichTextBox 的想法。不幸的是,我正在为我的雇主做这个,他对项目设置了一些限制条件。如果这是唯一的方法,那么它会起作用。不过最好有一个普通的旧文本框(我认为这可能会使这成为不可能)
  • TextBox 控件不支持内部样式或元素,更不用说某些超链接概念了。重新评估“要求”。
  • 是的。与其说是要求不如说是要求。因此,我想在说它必须是 RichTextBox 之前,我会先检查一下是否有办法使用普通的旧文本框。

标签: c# hyperlink


【解决方案1】:

您正在寻找的最简单的解决方法是为 DoubleClick 添加一个处理程序,然后只比较选定的文本。 如果一定要单击,则要使用 OnClick,然后将测试一直到左右最后一个空格,并进行相同的比较。

顺便说一句,非常骇人听闻。

    private void textBox1_DoubleClick(object sender, EventArgs e)
    {
        if (string.Compare(textBox1.SelectedText.Trim(), "HERE") == 0)
            System.Diagnostics.Process.Start("http://www.google.com");
    }

【讨论】:

  • 不保证有正确的选择文本,如果有的话。也没有 UI 反馈。
【解决方案2】:

在上一个响应的基础上,您可能希望将事件处理程序添加到标签中。您应该能够将标签格式化为蓝色并带有下划线,看起来像一个链接。

【讨论】:

    猜你喜欢
    • 2018-08-01
    • 1970-01-01
    • 2016-07-17
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-10
    相关资源
    最近更新 更多