mahesh
mahesh

Reputation: 1390

Difference in behaviours of the Dispose method between Windows Forms' Form and textboxes

Whenever I call the Dispose method on a Windows Forms form (derived from System.Windows.Forms.Form) to close it, the Dispose method finalizes by releasing resources and disposing the form.

I have runtime objects like textboxes as below:

Textbox Tb = new Textbox();

The user can create new textboxes dynamically. I want it so those textboxes that contain data stay around, and those that are null are removed. When I call the Dispose method on the empty textboxes, at runtime it looks like they're disposed, but generally they're just invisible.

So:

  1. What is the difference between calling the dispose method on textboxes versus classes derived from Forms?

  2. Why is a Form disposed on calling e.g. Form1.Dispose();, and why not textboxes at runtime as below?

    if (tb.text=="")
        tb.Dispose();
    

Upvotes: 7

Views: 2653

Answers (1)

MPelletier
MPelletier

Reputation: 16697

From what I understand, it's because of ownership. The form owns the controls, so if you dispose of the controls, fine, you just need to refresh it. If you dispose of the form itself, it's gone, nothing to refresh.

Upvotes: 1

Related Questions