我的日志系统生成rtf格式的字符串并将它们直接放到RichTextBox:
RichTextBox1.rtf = MyRTFFormattedString;
日志中的每一行通常都包含一些文本和链接:
{\rtf1\ansi\ansicpg1251\fs16
{\colortbl;\red255\green0\blue0;\red0\green255\blue0;\red0\green0\blue255;\red0\green0\blue0;\red100\green100\blue100;\red255\green255\blue0;}
{\cf5 [11:02:59] }Схема {\cf3{\field{\*\fldinst HYPERLINK "BCA-02-3202-THAP-2.01-0"}{\fldrslt BCA-02-3202-THAP-2.01-0}}} успешно экспортирована в файл {\cf3{\field{\*\fldinst HYPERLINK "H:\\tmp\\PID\\Draft\\pdf\\THAP\\3202\\01112013-!-3202-THAP-!-0-0.pdf"}{\fldrslt H:\\tmp\\PID\\Draft\\pdf\\THAP\\3202\\01112013-!-3202-THAP-!-0-0.pdf}}}\par
{\cf5 [11:03:00] }Схема {\cf3{\field{\*\fldinst HYPERLINK "BCA-02-3202-THAP-2.02-0"}{\fldrslt BCA-02-3202-THAP-2.02-0}}} успешно экспортирована в файл {\cf3{\field{\*\fldinst HYPERLINK "H:\\tmp\\PID\\Draft\\pdf\\THAP\\3202\\01112013-!-3202-THAP-!-0-0.pdf"}{\fldrslt H:\\tmp\\PID\\Draft\\pdf\\THAP\\3202\\01112013-!-3202-THAP-!-0-0.pdf}}}\par
{\cf5 [11:03:02] }Схема {\cf3{\field{\*\fldinst HYPERLINK "BCA-02-3202-THAP-2.03-0"}{\fldrslt BCA-02-3202-THAP-2.03-0}}} успешно экспортирована в файл {\cf3{\field{\*\fldinst HYPERLINK "H:\\tmp\\PID\\Draft\\pdf\\THAP\\3202\\01112013-!-3202-THAP-!-0-0.pdf"}{\fldrslt H:\\tmp\\PID\\Draft\\pdf\\THAP\\3202\\01112013-!-3202-THAP-!-0-0.pdf}}}\par
{\cf5 [11:03:03] }Схема {\cf3{\field{\*\fldinst HYPERLINK "BCA-02-3202-THAP-2.04-0"}{\fldrslt BCA-02-3202-THAP-2.04-0}}} успешно экспортирована в файл {\cf3{\field{\*\fldinst HYPERLINK "H:\\tmp\\PID\\Draft\\pdf\\THAP\\3202\\01112013-!-3202-THAP-!-0-0.pdf"}{\fldrslt H:\\tmp\\PID\\Draft\\pdf\\THAP\\3202\\01112013-!-3202-THAP-!-0-0.pdf}}}\par
\par
\par
\par
\par
{\cf5 ОТЧЕТ ОБ ЭКСПОРТЕ}\par
{\cf5 ===============================================================}\par
{\cf3 Процесс успешно завершен}\par
\par
Экспортировано: 4 схем из 4 за 00:00:07.60\par
}
将此字符串放入RichTextBox后,一切看起来都很不错:
问题是通过在日志中的最后2-3行中链接链接来生成LinkClicked
个事件。这样的"死"行数取决于日志中的总行数(例如4行 - 1行,10行 - 3行等)。
所有行都具有相同的rtf语法 在写字板中打开文档时,所有行中的所有链接都正常工作 将最后一行移动到日志中的第一个位置会使该行中的链接正常工作。
如何解决这个问题?
也许RichTextBox中的超链接计数有一些限制?
答案 0 :(得分:0)
尝试使用RichTextBox v5:
public class RichText50W : RichTextBox
{
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
static extern IntPtr LoadLibrary(string lpFileName);
protected override CreateParams CreateParams
{
get
{
CreateParams prams = base.CreateParams;
if (LoadLibrary("msftedit.dll") != IntPtr.Zero)
{
prams.ClassName = "RICHEDIT50W";
}
return prams;
}
}
}