Because you want to do a fluid layout, but two controls can't be combined, do a custom control. This control requires a text setting, a PIC settings image display, and a picture that can be modified in the Properties panel by selection.
After adding a user control, you can set the contents of the control at your own discretion, and here are some settings for properties.
- The custom control displays the switch in the Toolbox:
Change true to False to not display.
[ToolboxItem (true)] Public Partial class Usercontrol1:usercontrol
- The icon for the custom control in the Toolbox is displayed:
You can use an icon for an existing control,
1 [ToolboxBitmap (typeof(System.Windows.Forms.PictureBox))]2 Public Partial class Usercontrol1:usercontrol
If you do not want to use the system's icon, you want to work with your own icon, you can (this part is not tested, from the reference article)
1 [ToolboxBitmap (typeof"WindowsApplication1.Images.MyPanel.bmp" )]2publicclass Mypanel:usercontrol
However, be sure to note the path, WindowsApplication1.Images.MyPanel.bmp says the solution is WindowsApplication1, the directory is Images, the file name is Mypanel.bmp, and the image must be "embedded resources" (Click File, right, property, have a file attribute, where, in the build operation, you can select "Embedded Resource")
- Custom Controls display switches on the properties panel:
1[Browsable (true)]2[Description ("Property Description"), Category (the property name"), DefaultValue ("property default value, reset using")]3 Public Override stringText4 {5 Get{returnLabel1. Text; }6 Set{Label1. Text =value;}7}
(Excerpt from the reference article) is used to set the default value, for String,bool,int, can be written directly, such as [DefaultValue (10)], this is OK, but, not the three types, it is more troublesome, must first be converted to a string to set the success. As Darkgray above, this is a system-defined color, which is better handled. However, if it is some custom color, such as color is 128, 0,128, you should convert 128 to 16, written as 0x800080, prefix 0x is bound to add. Finally, [DefaultValue (typeof (Color), "0x800080")]
There is also a [DefaultValue (typeof (Color), "0, 70, 213")]
If the font is required [DefaultValue (typeof (Font), "Arial, 9pt")]
Neither of these special cases has been tested by either of the three methods.
- To select a resource for a custom control property:
If the custom attribute is not input such as text, it is necessary to select a resource similar to PictureBox, so the file type is used when setting the attribute, such as the example of selecting a picture
1[Browsable (true)]2[Description ("To set a picture of a control"), Category ("Setpic"), DefaultValue (" ")]3 PublicBitmap setpic4 {5 Get{return(Bitmap) This. pictureBox1.Image;}6 Set7 {8 This. pictureBox1.Image =value;9 }Ten}
This will be selected by selecting a Resource dialog box in the settings of the Properties panel.
- Custom control Property Selection drop-down list:
When defining a property, you need to set the enumeration value to define the attribute by enumerating, as in the example
1 public enum { } 7 public Indexenum index; 8 [browsable (True )] 9 [Description ("Set Index"), Category ("index"), defaultvalue ("attribute default")]10 public {get {return } Index }13 set {index = value;} +}
Report:
Reference article: Common design Properties "C #" Mom no longer have to worry about how custom controls add default values to special types of properties, with a custom GroupBox
C # Custom Control Properties panel and select resource Settings