构成控件
组成用户控件的控件(也称作“构成控件”)在自定义图形呈现时的灵活性相对较差。 所有 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.
}
// Add the event handler to the button's Paint event.
MyButton.add_Paint(new
System.Windows.Forms.PaintEventHandler(this.MyPaint));
// Create the custom painting method.
protected void MyPaint(System.Object sender,
System.Windows.Forms.PaintEventArgs e)
{
// Additional rendering code goes here.
}
上例创建一个在每次执行 MyButton.Paint 事件时执行的方法,用于将附加的图形化表示形式添加到控件中。 请注意,这并不妨碍 MyButton.OnPaint 的执行,因此,除了自定义绘制外,仍将执行通常由某个按钮执行的所有绘制操作。 有关 GDI+ 技术和自定义呈现的详细信息,请参见用 GDI+ 创建图形图像。 如果想要控件具有唯一的表示形式,则最好创建一个继承的控件,为它编写自定义呈现代码。 有关详细信息,请参见用户描述的控件。