c# – 如何绘制选定的文本

我正在为Textbox / Label控件编写自定义替换.它需要提供类似的功能,但会在我的应用程序环境中进行优化和(希望)更快.它需要能够支持多行文本选择.我想知道是否有一种简单的方法来绘制选定的文字?现在,看起来唯一的方法是计算应该绘制选择矩形的位置并手动绘制它.我希望得到关于实现这个或任何替代方法的最简单方法的建议.谢谢. 最佳答案 使用System.
Windows.Forms.TextRenderer.

只需覆盖System.Windows.Forms.Control中的方法:

protected override void OnPaint(PaintEventArgs e)
{
    TextRenderer.DrawText(e.Graphics, Text, Font, new Rectangle(0, 0, Width, Height), ForeColor);
}

public override Size GetPreferredSize(Size proposedSize)
{
    return TextRenderer.MeasureText(Text, Font);
}

当然,如果您需要实现自定义行为,则需要处理更多事件,如OnFontChanged或OnSizeChanged.

如果您要查找的是这些控件中的特定文本(选定文本),您可能需要查看此article.拼写检查库(SharpSpell)的源代码也链接到本文.

点赞