When you modify column headers of a ListView at design time, the designer generates code to serialize column headers at run-time:
private void InitializeComponent()
{
this.listView1 = new System.Windows.Forms.ListView();
this.columnHeader1 = new System.Windows.Forms.ColumnHeader();
this.columnHeader2 = new System.Windows.Forms.ColumnHeader();
this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.columnHeader1,
this.columnHeader2
});
}
How does the forms-designer know that it should call the constructor for each column followed by a call to the AddRange method of the Columns property of the ListView? I need this for a ListView like UserControl I am writing.
You can use special attributes to tell the Visual Studio designer how to serialize properties in code. See the MSDN reference for DesignerSerializationVisibilityAttribute for an example. This series of articles also gives a good overview of the various attributes available to extend design time support for custom controls. Hope this helps.
What I wanted to achieve was to customize the InitializeComponent
code produced by my custom component. I found this MSDN article which describes how to do that:
Customizing Code Generation in the .NET Framework Visual Designers
It appears that I need to write a CodeDomSerializer
for my component, and generate a collection of CodeExpression
's describing my custom initialization code.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With