Gentili amici,

ho un piccolissimo (!) problema.

Io sono un vero niubbo sul C#, ma sono un decente programmatore JAVA. In parole semplici, vorrei capire come operare sugli oggetti del window form.
Esempio:

Ho un Form che contiene una textbox (textBox1) e un pulsante (bottone1). Alla pressione di bottone1 viene istanziata la classe "controllaTextBox(string contenutoTextBox)" che, in pratica, verifica che il contenuto della textBox sia diverso da un certo valore. Se il valore inserito è diverso da quello che non voglio, il form si deve "pulire", e cioè si devono eliminare i suoi oggetti (ovvero textBox1 e bottone1). Se utilizzo riferimenti statici, il metodo "Dispose()" funziona, se utilizzo invece la sola istanza del form, questo non va. Ecco il codice:

codice:
public System.Windows.Forms.Panel panel1;
		public static System.Windows.Forms.Button bottone1;
		public System.Windows.Forms.TextBox textBox1;
		
		void bottone1Click(object sender, System.EventArgs e)
		{
			string contTextBox = textBox1.Text;
			if (contTextBox.Equals("")) {
				System.Windows.Forms.MessageBox.Show("Inserire un valore!", "Errore");
			} else {
				new controllaTextBox(contTextBox);
	
			
				
			}
			
			}
		}
e questo è il codice di controllaTextBox:

codice:
public controllaTextBox(string contTextBox)
		{
			MainForm.bottone1.Dispose();
			MainForm mf = new MainForm();
			mf.textBox1.Controls.Dispose();
		}
e, come ho già detto, dal form viene "disposato" soltanto il bottone, ma non la textBox. Ora, in JAVA saprei perfettamente come fare, ossia passerei come parametro il form stesso, pulirei ciò che non mi interessa e il gioco sarebbe fatto, ma qui invece funziona solo se invoco il metodo su un valore statico, ed è una cosa che voglio assolutamente evitare, per questioni di thread-safety. Ovvero, vorrei seguire il detto "static is what static should really be". :-)
Mi piacerebbe capire, ad ogni modo, come lavorare "graficamente", nel senso che non ho capito se devo creare nuovi form o se devo utilizzare lo stesso, aggiungendo e togliendogli componenti desiderati. Se devo utilizzare lo stesso form, come faccio a progettarne l'interfaccia usando l'IDE (uso SharpDevelop 3.1)?

Grazie mille a chi mi saprà aiutare!