[求助]重绘TextBox控件后,设计时指定的Text属性内容显示不出来!

luckypan 2003-07-28 07:08:07
我重绘一个TextBox控件,override了它的OnPaint方法。但重绘后出现了问题。设计时指定的Text属性重绘后显示不出来,当鼠标点击该控件时,才会显示出内容来,你遇到过吗?该怎么解决呢?
...全文
46 7 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
luckypan 2003-07-31
  • 打赏
  • 举报
回复
Any one can help me out?
luckypan 2003-07-30
  • 打赏
  • 举报
回复
good idea!!我觉得既然有base.OnPaint(e),就应该是它自己画出Text,为什么还要自己Draw呢?
Knight94 2003-07-29
  • 打赏
  • 举报
回复
你的OnPaint代码如何写的。
juqiang 2003-07-29
  • 打赏
  • 举报
回复
你的DrawString呢???

我是这么做的,做一个UserObject,然后把textbox放进去。然后在Paint中对你的userobject自己重画,比如像你的画一个边框,或者说画一个下划线。当然,你还要小心的处理一下textbox的位置、大小:在你的userobject的Resize事件中。
luckypan 2003-07-29
  • 打赏
  • 举报
回复
base.OnPaint(e);
e.Graphics.DrawRectangle(new Pen(Color.FromArgb(127,157,185),1),this.ClientRectangle.X,this.ClientRectangle.Y,this.ClientRectangle.Width-1,this.ClientRectangle.Height-1);
------------------------------------------------------------------------
以上就是代码,当然肯定是被执行的。
luckypan 2003-07-28
  • 打赏
  • 举报
回复
我认真得试了你的方法,但是不行啊!真头疼啊。
雪狼1234567 2003-07-28
  • 打赏
  • 举报
回复
你在重绘完以后再用一下base的方法如下:
protected override OnPaint(PaintEventArgs e)
{
// 绘图操作, 以不调用 base.OnPaint(e) 的方式。

...

if (this.Paint != null)
Paint(this, e);
}
发帖
C#

10.9w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
帖子事件
创建了帖子
2003-07-28 07:08
社区公告

让您成为最强悍的C#开发者