gpt4 book ai didi

c# - 如何在 TextBox 上绘制

转载 作者:太空宇宙 更新时间:2023-11-03 18:46:05 24 4
gpt4 key购买 nike

我有一个带有 TextBox 的 winform,我想在它上面绘制一些 GDI 图形。文本框没有要 Hook 的 Paint() 事件,因此我假设这一切都必须在表单的 Paint 事件中发生。作为测试,我绘制了一个从原点到文本框内某个位置的矩形:

    private void FindForm_Paint(object sender, PaintEventArgs e)
{
using (Pen pen = new Pen(Color.Blue))
{
e.Graphics.DrawRectangle(pen, 0, 0, point.X, point.Y);
}
}

问题是,当我运行时,绘图先完成,然后在我的线条之上呈现文本框。我想在呈现文本框后绘制线条。

附言。我没有使用 Form.SetStyle() 函数对表单进行任何设置。

最佳答案

所有者绘制 TextBox 控件可能相对棘手,因为它只是原生 Win32 TextBox 控件的包装器。

捕获WM_PAINT 消息的最简单方法是从 NativeWindow class 继承您需要处理的自定义绘画例程。 .

这是一篇出色的分步文章,展示了如何在显示红色波浪下划线的情况下执行此操作:Owner-drawing a Windows.Forms TextBox (原始链接已失效;已替换为存档版本)

关于c# - 如何在 TextBox 上绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4378148/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com