0

私は VB.NET を使用して最初の実際の WinForms アプリケーションに取り組んでおり、プロジェクトは当初の予想よりも少し大きくなっています。私は WinForms でこれを行うことに慣れていないので、見つけた解決策が正しい方法であるかどうかはわかりません。

多くの Control 要素、特に TextBoxes があるため、さまざまなイベントを処理するためのコードを別のクラスに移動する必要があります。私が見た限りでは、作業しているプログラムの種類に応じて、これを行う方法はさまざまです。最も理解しやすいのは、追加のクラスを作成し、WithEvents を使用して必要なすべての Control オブジェクトを宣言することです。たとえば、私のメインクラスでは次のようになります。

Private Sub txtCustomerName_TextChanged(sender As Object, e As EventArgs) Handles txtCustomerName.TextChanged
' do lots of stuff here
End Sub

代わりに、そのすべてのコードを新しいクラスに移動したい場合は、次のようになります。

Public Class Events
    Public WithEvents txtCustomerName As TextBox

    Public Sub New()

    End Sub

    Private Sub txtCustomerName_TextChanged(sender As Object, e As EventArgs) Handles txtCustomerName.TextChanged
    ' do lots of stuff here...
    End Sub
End Class

つまり、メインクラスで今しなければならないことは次のとおりです。

Dim events As New Events()
events.txtCustomerName = txtCustomerName

他のすべての Control 要素についてもこれを行います。そうすれば、メイン クラスをよりクリーンに保つことができますが、イベント リスナー コードでいっぱいの巨大なクラスになってしまいます。これで少しは楽になると思うのですが、やはり下品な感じがします。私の次のアイデアは、これをさらに分割して、TextBox イベント用に 1 つのイベント クラスを作成し、Button イベント用に別のイベント クラスを作成することです。私は何かが完全に欠けています。

4

0 に答える 0