构成控件
组成用户控件的控件(也称作“构成控件”)在自定义图形呈现方面的灵活性相对较差。 所有 Windows 窗体控件都通过各自的 OnPaint 方法处理自己的呈现。 由于此方法受到保护,开发人员无法对其进行访问,因此在绘制控件时无法阻止其执行。 然而,这并不意味着不能添加影响构成控件外观的代码。 附加呈现可通过添加事件处理程序来完成。 例如,假设正在创作一个 UserControl 控件,该控件有一个名为 MyButton
的按钮。 如果想要获取 Button 提供的附加呈现,则需将类似如下的代码添加到用户控件中:
Public Sub MyPaint(ByVal sender as Object, e as PaintEventArgs) Handles _
MyButton.Paint
'Additional rendering code goes here
End Sub
// Add the event handler to the button's Paint event.
MyButton.Paint +=
new System.Windows.Forms.PaintEventHandler (this.MyPaint);
// Create the custom painting method.
protected void MyPaint (object sender,
System.Windows.Forms.PaintEventArgs e)
{
// Additional rendering code goes here.
}
上例创建一个每次执行 MyButton.Paint
事件时都会执行的方法,用于将附加的图形化表示形式添加到控件中。 请注意,这并不妨碍 MyButton.OnPaint
的执行,因此,除了自定义绘制外,仍会执行通常由某个按钮执行的所有绘制操作。 有关 GDI+ 技术和自定义呈现的详细信息,请参阅用 GDI+ 创建图形图像。 如果希望控件具有唯一的表示形式,则最好创建一个继承的控件,为其编写自定义呈现代码。 有关详细信息,请参阅用户描述的控件。