2012-01-25 10 views
0

フォームからビジネスロジックを分離する方法を理解しようとしています。これを初めて試みたのですが、クラス内の複数のフォームからイベントを処理する方法を理解したいと思います。私は自分自身が、フォームのクラスごとに同じロジックを何度も何度も繰り返し書いていることに気がつきました。私はそのフォームをすべてwinformsで完全に分離する方法を見つけ出しました。フォーム間のUI検証の共有

だから、基本的に私はForm1の中に、このクリックイベントがあります

Private Sub btnSubmit_Click(sender As System.Object, e As System.EventArgs) Handles btnSubmit.Click 

     If String.IsNullOrWhiteSpace(txtPlanName.Text) OrElse _ 
      String.IsNullOrWhiteSpace(txtPlanNumber.Text) Then 
      MessageBox.Show("All of the fields are not filled in!" + Environment.NewLine + _ 
          Environment.NewLine + "Hit Ok and try again.") 
     Else 
      'do something 

     End If 
    End Sub 

私が何をしたいのかは、私はこのコードを再利用できるように、すべての私のフォームのイベントを処理することができますクラスを持っています。理想的には、自分のフォームのいずれかに直接コードを書く必要がないような方法で構造化したいと思います。

Handles Form1.btnSubmit, Form2.btnEnter 

これは可能ですか?

答えて

1

スタティックな検証メソッドを持つパブリッククラスを作成し、これらのメソッドをユーザーインターフェイスで呼び出す方が適切です。

public class MyValidation 
    public Shared Function IsEmpty(ByVal data as String) as Boolean 
     if String.IsNullOrWhiteSpace(data) OrElse String.IsNullOrWhiteSpace(data) Then 
     return true 
     End If 
     return false 
    End Function 
End Class 
関連する問題