public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { var f = new UserControl1() { AllowDrop = false}; this.Controls.Add(f); this.Controls.Remove(f); GCCheck(); } private void button2_Click(object sender, EventArgs e) { var f = new UserControl1() { AllowDrop = true}; this.Controls.Add(f); this.Controls.Remove(f); GCCheck(); } private void GCCheck() { var a = GC.GetTotalMemory(false); var b = GC.GetTotalMemory(true); Console.WriteLine("GC Before=" + a + " After=" + b); } } public partial class UserControl1 : UserControl { public UserControl1() { InitializeComponent(); } ~UserControl1() { Console.WriteLine(this.GetType().Name + "は解放されました " + "{AllowDrop = " + this.AllowDrop + " }"); } }