【问题标题】:How to make "links" added to the text? [duplicate]如何使“链接”添加到文本中? [复制]
【发布时间】:2018-10-20 15:20:54
【问题描述】:

制作了一个按钮来将“链接”添加到“richTextBox”。 “链接”不是添加到文本中,而是从“richTextBox”上方添加的。

问题
如何根据当前代码或基于其他解决方案将“链接”添加到文本中?

 LinkLabel link = new LinkLabel();
        link.Text = "*** LINK ***";

        // link.LinkClicked
        link.LinkClicked += new LinkLabelLinkClickedEventHandler(this.link_LinkClicked);

        // data
        LinkLabel.Link data = new LinkLabel.Link();
        data.LinkData = @"C:\";

        // link
        link.Links.Add(data);
        link.AutoSize = true;
        link.Location =
            this.richTextBox1.GetPositionFromCharIndex(this.richTextBox1.TextLength);

        // richTextBox1
        this.richTextBox1.Controls.Add(link);
        this.richTextBox1.AppendText(link.Text + "   ");
        this.richTextBox1.SelectionStart = this.richTextBox1.TextLength;

GIF

【问题讨论】:

  • 阅读 this 可能会有所帮助

标签: c# winforms


【解决方案1】:

这是错误的做法。 RichTextBox 中的文字不是Controls 的一部分,所以如果将LinkLabel 添加到Controls 中,它们的位置将不会同步。

看这个问题How can I make a hyperlink work in a RichTextBox?

【讨论】:

  • 谢谢。我读了。如果我理解正确,如果在“RichTextBox”中只有链接,则使用此解决方案。我在“RichTextBox”中使用以下文本结构:“第 1 行文本,第 2 行参考,第 3 行文本,第 4 行参考”如果我不明白某些内容,我很抱歉。我是一个没有经验的程序员。
  • 这种方法在几种情况下会失效。例如,如果您将显示滚动内容。或者系统字体(大小)会不同。或者如果一行将被换行到下一行,等等......
【解决方案2】:

作为TcKs 解决方案的替代方案,请检查:Links with arbitrary text in a RichTextBox

相关文章的作者写道:

每次更改 RichTextBox 中的文本时,都会解析文本 对于 URL,匹配的文本范围被格式化为链接 (带下划线,默认为蓝色前景)

【讨论】:

    猜你喜欢
    • 2022-06-12
    • 1970-01-01
    • 2023-03-04
    • 2012-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-11
    • 2021-01-27
    相关资源
    最近更新 更多