将图像嵌入文本框中

时间:2009-01-15 15:11:08

标签: c# winforms

我有一个Windows窗体(.Net 2.0)应用程序,我有一个请求将一些自定义图像嵌入到一些文本框中(比如Tortoise的新版本)。

3 个答案:

答案 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来绘制控件。

我怀疑这不会是微不足道的,因为文字绘图可能非常复杂,但它应该是可能的。