关于VB.NET中的PAINT事件的疑惑

m_pMain 2003-08-26 01:39:04
首先是Paint和OnPaint事件有什么区别?
再看书上的一段代码,是用于做一个控件的:
现在,编写处理Paint事件的代码,即在控件重新刷新时绘制文本.要为这段代码提供一个
位置,需删除UserControl基类的OnPaint方法(这段句不理解)
Protected Overrides Sub OnPaint(ByVal e As
System.Windows.Forms.PaintEventArgs)
MyBase.OnPaint(e) MyBase好象没有OnPaint这个方法,是不是我的书版本太旧了?
.
.
.
End Sub

...全文
218 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
m_pMain 2003-08-28
  • 打赏
  • 举报
回复
可是我打MyBase.时候没有提示OnPaint啊
alaisalaix 2003-08-26
  • 打赏
  • 举报
回复
1。“删除”其实并非真正的删除,只是对OnPaint做了重载(overrides)
2。MyBase不是某个特别的类,它是对自定义控件的基类UserControl的引用,通过MyBase就
可以访问到基类UserControl的一些方法,UserControl在System.Windows.Forms名字
空间下定义,它本身没有定义OnPaint()方法,但VB.NET中也引入了继承机制,OnPaint()
方法在UserControl的基类System.Windows.Forms.Control中有定义,可以用对象浏览
器看看

当自定义控件已重载的OnPaint方法被调用时,MyBase.OnPaint(e)也得到执行,执行的结果将
激发System.Windows.Forms.Control的Paint事件,因为自定义控件的基类UserControl没有Paint这个事件,UserControl类是通过继承Control类得到Paint事件并传给自定义控件的

16,553

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧