Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Very Simple definition of InitializeComponent(); Method

I have been working through the Head First C# book and have used the InitializeComponent(); method several times.

An example of this is on the Party Planner exercise I created a class called DinnerParty.cs and then used this code in the Form1.cs

public Form1()         
        {        
            InitializeComponent(); 
            dinnerParty = new DinnerParty() { NumberOfPeople = 5 };
            dinnerParty.SetHealthyOption(checkBox2.Checked);
            dinnerParty.CalculateCostOfDecorations(checkBox1.Checked);
            DisplayDinnerPartyCost();
        }

My Question is, what exactly is the Initialize Component method doing. My understanding is that I am defining a new object or instance of the DinnerParty class and setting up all the values, so far I have assumed that InitializeComponent() is kind of saying "Set up values of my fields using the following:"

Could I please have a BASIC, something I can get my head around definition. I have looked at previous posts and answers regarding this and everything is too complex. I will mark the easiest to understand response that still has the key information as the answer.

like image 213
JsonStatham Avatar asked Sep 06 '12 09:09

JsonStatham


People also ask

Where is InitializeComponent?

Simply position the cursor in InitializeComponent method call and press F12 in VS.NET and Form . designer file will open to show the implementation of the InitializeComponent method.

What does InitializeComponent do in WPF?

#91 – What InitializeComponent() Does The entry point into a WPF application, the Main function, is quite simple. It creates an instance of your Application object, calls its InitializeComponent method and then its Run method.

What does InitializeComponent do xamarin?

This method locates a URI to the XAML for the Window / UserControl that is loading, and passes it to the System. Windows. Application.


2 Answers

InitializeComponent is a method automatically written for you by the Form Designer when you create/change your forms.

Every Forms file (e.g. Form1.cs) has a designer file (e.g. Form1.designer.cs) that contains the InitializeComponent method, the override of the generic Form.Dispose, and the declaration of all of your User Interface objects like buttons, textboxes, labels and the Form itself.

The InitializeComponent method contains the code that creates and initializes the user interface objects dragged on the form surface with the values provided by you (the programmer) using the Property Grid of the Form Designer. Due to this fact do not ever try to interact with the form or the controls before the call to InitializeComponent.
Also, you will find here, the plumbing required to link the controls and form events to the specific event handlers you have written to respond to the user actions.

The code contained in Form1.cs and the Form1.Designer.cs files is part of the same class thanks to the concept of partial classes that could keep two or more files of your code together like a single block of code.

Of course, due to the high numbers of changes executed by the Form Designer, it is a really good advice to not try to modify manually this method, while, sometime, I find useful to add code to the Dispose method with the purpose to destroy some unmanaged objects created in the form lifetime.

like image 161
Steve Avatar answered Oct 18 '22 05:10

Steve


InitializeComponent is a method which is used to initialize your form. It has nothing to do with your DinnerParty class.

So, it might be setting up things like the buttons, labels, event handlers, and so on on your User Interface.

Here's a more in depth explanation. What does InitializeComponent() do, and how does it work in WPF?

like image 2
NeilD Avatar answered Oct 18 '22 04:10

NeilD