如何添加到图片框控件名为" defaultControl
"的新属性? (控制类型),使用这个新属性,如:PictureBox1.defaultControl = dc
。
(最简单/最快捷的方式)
答案 0 :(得分:3)
您需要扩展PictureBox
类:
public class MyPictureBox : PictureBox
{
public Control DefaultControl {get; set;}
}
但 可以使用Tag
属性将对象附加到控件(无论出于何种原因):
PictureBox1.Tag = dc;
答案 1 :(得分:3)
控件只是一个直接或间接来自System.Windows.Forms.Control
的类。您可以创建一个继承自PictureBox
的新类,并为其添加一个新属性,就像对其他任何类一样。
您的新Control
将自动显示在当前项目的工具箱中,并可以用作任何其他Control
。您还可以在PictureBox
文件中手动将PictureBoxEx
的类型更改为Form1.Designer.cs
。在对*.Designer.cs
文件进行任何更改之前,请关闭设计器并保存表单。
<强> VB 强>
Public Class PictureBoxEx
Inherits PictureBox
Private m_DefaultControl As Control
Public Property DefaultControl() As Control
Get
Return m_DefaultControl
End Get
Set
m_DefaultControl = Value
End Set
End Property
End Class
从VS 2010开始,您可以使用Auto-Implemented Properties
Public Property DefaultControl As Control
<强> C#强>
public class PictureBoxEx : PictureBox
{
public Control DefaultControl { get; set; }
}
扩展现有控件是在winforms中创建新控件的一种非常强大的方法。您可以覆盖现有方法;添加新属性,方法和事件。如果要创建全新控件或从现有控件开始,以便更改其行为和外观,或者如果要添加新功能,请从Control
派生控件。