可以在Winforms TextBox上设置背景图像吗?
是否可以在C#中更改Windows窗体TextBox
的背景图像? 没有BackgroundImage
属性。 我应该以某种方式覆盖Paint
方法吗?
这是不可能的。 如果您尝试重写TextBox并在构造函数中调用SetStyle(ControlStyles.UserPaint,true),以便您可以覆盖OnPaintBackground并绘制图像,那么您将会遇到几个粗鲁的意外。 回归传统渲染模式只是其中之一。
TextBox可以追溯到Windows的早期阶段,当时它仍然必须在386SUX硬件上运行。 它承诺在这种有限的硬件上合理地工作的一个特殊罪行是在不使用WM_PAINT事件的情况下绘制自己。 这会破坏背景图像。
CodeProject.com上有一个提供一个项目。 我不能推荐它。
如果您需要一些本机编码,您可以尝试使用此处提到的技术: http : //www.codedblog.com/2007/09/17/owner-drawing-a-windowsforms-textbox (编辑:原始链接已经失败了,thnx Zyo,用替换机器中的归档副本替换它。)
虽然文章是关于在绘制文本框之后 (而不是之前)在文本框中绘制某些内容,但也许可以对其进行修改以完成您所需的内容。
- 执行存储过程时,使用CommandType.StoredProcedure与使用CommandType.Text有什么好处?
- 如何在Windows Phone 8上使用Windows.Storage正确读取和写入文件