【发布时间】:2010-09-27 15:47:29
【问题描述】:
使用 C# .NET Compact Framework 我正在创建一个 GUI 控件,其中包含和控制子控件,这些子控件也是自定义控件(即 System.Windows.Forms.UserControl)。孩子和父母都有自定义绘图例程(OnPaint)。为了更好地理解和优化绘图例程,我想澄清一下 .NET 下的绘图顺序。
(1) 第一次显示整个事件时,下列事件的正确顺序是什么:
parent.OnPaintBackground
child.OnPaintBackground
parent.OnPaint
child.OnPaint
(2) Control.Invalidate() 调用的顺序会影响 OnPaint / OnPaintBackground 事件的顺序吗?
(3) 如果子控件调用自己的child.Invalidate(),父控件是否也得到OnPaint/OnPaintBackground事件?
(4) 系统如何确定哪个控件是哪个子控件的父控件,反之亦然? Control.Parent 是这种关系的唯一指示吗?
【问题讨论】:
标签: c# .net user-interface