Reputation: 1390
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:
What is the difference between calling the dispose method on textboxes versus classes derived from Forms?
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
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