クラスAとクラスBがあったとして、クラスAのボタンコントロールを押した際に、クラスB内で処理をしたい場合は以下の2案が考えられると思うのですが、
一般的にはどちらを使えばいいものでしょうか?あるいはこういう時はこっちがいいという考え方はありますか?
今は�@で実装してますが、見づらく再利用もしづらい気がしてきたので�Aに直すか迷っています
(実際は下記例と異なり、10個以上の引数を与えているので・・・)

�@案
//クラスAでクラスBを宣言してコントロールを引数にする
B = new B(button1, textBox1);
//クラスBでラムダ式でメソッドを実装
public B(Button button1,TextBox textBox1)
{
button1.Click += (sender, e) => button1_Click(textBox1);
}
//クラスBで同名のメソッドに処理を記載
void button1_Click(TextBox textBox1)
{
//処理
}

�A案
//クラスAでクラスBを宣言してコントロールをナンバー変数にする
B = new B();
B.button1=button1;B.textBox1=textBox1;
//クラスAでbutton1のクリックイベントを実装し、Bのメソッドを呼ぶ
private void button1_Click(object sender, EventArgs e){ B.button1_Click(); }
//クラスBに同名のメソッドに処理を記載
void button1_Click()
{
//処理
}