当前位置: 首页 > 编程语言 > C#

如何在TextBox上绘制分享

时间:2023-04-10 23:14:54 C#

如何在TextBox上绘制我使用winform的TextBox,想在上面绘制一些GDI图形。文本框没有要挂接的Paint()事件,因此我假设它必须发生在表单的Paint事件中。作为测试,我绘制了一个从原点到文本框内某个位置的矩形:(笔,0,0,point.X,point.Y);}}问题是当我运行时,绘图先完成,然后文本框呈现在我的行??的顶部。我想在渲染文本框后画线。附言。我没有使用Form.SetStyle()函数对表单进行任何设置。所有者绘制的TextBox控件可能比较棘手,因为它只是本机Win32TextBox控件的包装器。捕获需要由自定义绘画例程处理的WM_PAINT消息的最简单方法是继承NativeWindow类。这是一篇很好的分步文章,展示了如何在显示红色波浪下划线的上下文中执行此操作:Owner-drawWindows.FormsTextBox(原始链接已失效;由存档版本替换)System.Windows.Forms。TextBox类确实有一个Paint事件:http://msdn.microsoft.com/en-us/library/system.windows.forms.textboxbase.paint.aspx。根据MSDN,它不打算在您的代码中使用,但如果您不想创建自己的继承控件,您可能没有任何其他选择。如果要在TextBox内部绘图,应使用其Paint和从其句柄创建的Graphics对象。如果您甚至使用Form的Paint绘制,当TextBox接收到它自己的Paint事件时,它将覆盖之前的绘制,因为TextBox位于Form之上。如果您不使用TextBox的Paint事件,您仍然可以使用CreateGraphics方法来获取它的Graphics对象。但是,您必须小心处理TextBox的Paint事件后的绘图,否则它可能会被覆盖。最后,您可能需要创建自己的继承自TextBox的控件。继承是覆盖Windows窗体编程中的默认行为的一种强大方法。如果您需要其他帮助,请告诉我。以上就是C#学习教程:TextBox上所有内容的绘制分享。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处: