これは私の最初のwindowsフォームアプリケーションです。私はコードを再構成する際にいくつかの困難に直面しています。既定で提供されているForm1
クラスのすべてを入れ始めましたが、すぐに大きくなりすぎました。私はこれが非常に悪いプログラミング練習であることを知っていますので、私はいくつかのクリーンアップを開始し、単一の責任の原則を満たすために異なるクラスを作った。しかし、ボタン関連のイベントやグリッド関連のイベントはForm1
クラスでうまくいきますので、外に出すとクラッシュしてしまい、どうしたらいいかわかりません。windows forms organize code
public partial class Form1
{
public Form1()
{
InitializeComponent();
}
private void method1(object sender, EventArgs e)
{
//CODE
}
private void method2(object sender, DataGridViewCellEventArgs e)
{
//CODE
}
private void method3(object sender, EventArgs e)
{
//CODE
}
}
ので、私はmethod1
、method2
、method3
など異なるクラス(または異なるクラス)に移動したいのですが、かなり多くのアプリを壊すことなく、これを行う方法を失いました。私は明らかにアクセスを許可するためにprivateに設定されていますが、その後Form1クラスでこれらのメソッドを呼び出す方法はわかりません。新しいクラスを作成してイベントのメソッドを呼び出そうとしたとき、onClick: Newclass.method1()
のように動作しませんでした。私が考えることのできるものは、Form1 onClick: thisMethodCallsTheOneINeedInADifferentClass()
でいくつかのメソッドを呼び出すようなものですが、これは不器用な解決策であるようです...これを整理するより良い方法があると確信しています。アドバイスありがとうございます。
フォーム内にイベントハンドラを残しておくことをお勧めします。 – stuartd
"うまくいかなかった"ということをより明確に定義した場合は、必要な答えを得ることができます。コンパイラエラー?クラッシュ?例外? –