我有一个Windows窗体(.Net 2.0)应用程序,我有一个请求将一些自定义图像嵌入到一些文本框中(比如Tortoise的新版本)。
答案 0 :(得分:2)
我没有在文本框上使用OwnerDraw,但是我在其他控件上使用它,例如listbox和listview,我看到其他人用文本框这样做了。我发现一个教程应该指向正确的方向,它不用于在文本框中显示图像本身,但它可以用于:
http://www.codedblog.com/2007/09/17/owner-drawing-a-windowsforms-textbox/
希望至少让你开始......
答案 1 :(得分:1)
嗯。为什么不创建一个具有TextBox的BackColor的新userControl。隐藏TextBox的边框。然后订阅UC的Paint事件并绘制边框以类似于文本框。在Paint Handler中,您还可以绘制图像。在UserControl中,您可以轻松设置任何子控件(如文本框)的边界,或编写自定义布局并将文本框放在任何位置。我希望这会有所帮助。
答案 2 :(得分:1)
您可以做的是创建一个继承自System.Windows.Forms.TextBox类的新类。然后,您必须使用
设置控件的UserPaint样式SetStyle(ControlStyles.UserPaint, true)
在构造函数中使您能够自己绘制文本框,最后必须覆盖OnPaint或OnPaintBackground来绘制控件。
我怀疑这不会是微不足道的,因为文字绘图可能非常复杂,但它应该是可能的。