Discussion:
Where does the designer code come from?
(too old to reply)
schneider
2007-07-09 19:00:39 UTC
Permalink
How does the designer determine what code is used in the form designer code?

For example 1, when you drag a control (using the object name?):

private System.Windows.Forms.TextBox txtUserName;

this.txtUserName = new System.Windows.Forms.TextBox();


Thanks,
Schneider
OD
2007-07-15 12:28:42 UTC
Permalink
Post by schneider
How does the designer determine what code is used in the form designer code?
private System.Windows.Forms.TextBox txtUserName;
this.txtUserName = new System.Windows.Forms.TextBox();
When you drag a component onto the designer surface, VS is knowing the
class, then using reflection, it can get the list of public properties
and events. As all components must implement IComponent (providing
functionnality required by all components) and must inherit from
Control, it is easy to generate the "new" code and to manage other
common component behaviors.

Nothing really magic, just object programming :-)
--
OD___
www.e-naxos.com
schneider
2007-07-17 02:54:48 UTC
Permalink
Yes, I guess I should have said "What .NET objects are used to generate the
code?" I want to alter the behavior.

Thanks,
Schneider
Post by OD
Post by schneider
How does the designer determine what code is used in the form designer code?
private System.Windows.Forms.TextBox txtUserName;
this.txtUserName = new System.Windows.Forms.TextBox();
When you drag a component onto the designer surface, VS is knowing the
class, then using reflection, it can get the list of public properties and
events. As all components must implement IComponent (providing
functionnality required by all components) and must inherit from Control,
it is easy to generate the "new" code and to manage other common component
behaviors.
Nothing really magic, just object programming :-)
--
OD___
www.e-naxos.com
OD
2007-07-17 12:23:20 UTC
Permalink
Post by schneider
Yes, I guess I should have said "What .NET objects are used to generate the
code?" I want to alter the behavior.
The way code is generated mostly depends on the component itself.
For example, attributes such as Description, Browsable, default values,
default event, etc, are used in component source code and help VS to
display properties, to generate default event when you double-click the
component under design, etc.. Changing this attributes will change the
component behavior under design.

But can you be more precise about what you're wanting to do, give a
little sample if possible. I'm not sure to fully understand your goal.
--
OD___
www.e-naxos.com
schneider
2007-07-17 14:35:35 UTC
Permalink
I'm looking for what classes are used in creating the code.

Some X object/s must look at the component and decide what to generate code
for and what to ignore or decide where the code should be or look like.

There is also something that decides to put code into different
methods/regions, and creat comments like below.
I'm looking for info on how all this is done.

Thanks,
Schneider
#region Windows Form Designer generated code

/// <summary>

/// Required method for Designer support - do not modify

/// the contents of this method with the code editor.

/// </summary>

private void InitializeComponent() {
Post by OD
Post by schneider
Yes, I guess I should have said "What .NET objects are used to generate
the code?" I want to alter the behavior.
The way code is generated mostly depends on the component itself.
For example, attributes such as Description, Browsable, default values,
default event, etc, are used in component source code and help VS to
display properties, to generate default event when you double-click the
component under design, etc.. Changing this attributes will change the
component behavior under design.
But can you be more precise about what you're wanting to do, give a little
sample if possible. I'm not sure to fully understand your goal.
--
OD___
www.e-naxos.com
OD
2007-07-17 20:15:21 UTC
Permalink
Post by schneider
I'm looking for what classes are used in creating the code.
Generating the code is the VS job. There is no framework class for this
task. VS does it just by inspecting the class of the component and
taking into account all the supported attributes.
The way VS generate the code by separating some parts (design), etc, is
the specific job of the application "Visual Studio". Rules are changing
from one version to another (VS 2005 doesnt generate the same code than
VS 2003 for example).
You can write a code that performs the same task just using reflection,
but the way the code is finally "rendered" will be precisely your
application job, as VS does it its own way.
--
OD___
www.e-naxos.com
Sigurbjörn Valdimarsson
2007-09-20 15:48:01 UTC
Permalink
You might want to look at CodeDomSerializer and the
DesignerSerializerAttribute.
Post by schneider
Yes, I guess I should have said "What .NET objects are used to generate
the code?" I want to alter the behavior.
Thanks,
Schneider
Post by OD
Post by schneider
How does the designer determine what code is used in the form designer code?
private System.Windows.Forms.TextBox txtUserName;
this.txtUserName = new System.Windows.Forms.TextBox();
When you drag a component onto the designer surface, VS is knowing the
class, then using reflection, it can get the list of public properties
and events. As all components must implement IComponent (providing
functionnality required by all components) and must inherit from Control,
it is easy to generate the "new" code and to manage other common
component behaviors.
Nothing really magic, just object programming :-)
--
OD___
www.e-naxos.com
schneider
2007-09-20 16:08:56 UTC
Permalink
Thanks, that's what I was looking for. Looking to improve the designer code
for my components.

Schneider
Post by Sigurbjörn Valdimarsson
You might want to look at CodeDomSerializer and the
DesignerSerializerAttribute.
Post by schneider
Yes, I guess I should have said "What .NET objects are used to generate
the code?" I want to alter the behavior.
Thanks,
Schneider
Post by OD
Post by schneider
How does the designer determine what code is used in the form designer code?
private System.Windows.Forms.TextBox txtUserName;
this.txtUserName = new System.Windows.Forms.TextBox();
When you drag a component onto the designer surface, VS is knowing the
class, then using reflection, it can get the list of public properties
and events. As all components must implement IComponent (providing
functionnality required by all components) and must inherit from
Control, it is easy to generate the "new" code and to manage other
common component behaviors.
Nothing really magic, just object programming :-)
--
OD___
www.e-naxos.com
Loading...