フォームにボタン2個配置の状態で、
public void Button1_Click(object s,EventArgs e)
{
button2.Dispose();
button2.Text = "Text";
}
を実行しても、ぬるりが発生しません。
button2はDispose()で解放されたんじゃないんでしょうか?