繁体   English   中英

如何在 WinForms 应用程序中正确构造类和事件

[英]How to properly structure classes and events in a WinForms application

我正在使用 VB.NET 开发我的第一个真正的 WinForms 应用程序,并且该项目比最初预期的要大一些 - 所以我或多或少地被迫处理更好地构建我的代码的挑战。 我不习惯在 WinForms 中这样做,所以我不确定我找到的解决方案是否是正确的方法:

由于我有很多 Control 元素,尤其是 TextBoxes,我真的需要将处理不同事件的代码移动到另一个 class。 据我所知,有很多不同的方法可以做到这一点,具体取决于您正在处理的程序类型。 我发现最容易理解的是创建一个额外的 class 并使用 WithEvents 声明所有必要的 Control 对象。 因此,例如在我的主要 class 中,我将拥有:

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

相反,如果我想将所有代码移动到我的新 class,它看起来像这样:

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

这意味着我现在在我的主要 class 中要做的就是:

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

并对所有其他 Control 元素执行此操作。 这样,我可以让我的主要 class 更清洁,但我最终会得到一个巨大的 class 充满事件侦听器代码。 我觉得这对我有一点帮助,但它仍然感觉有点粗糙。 我的下一个想法可能是进一步拆分它,这样我就可以有一个事件 class 用于 TextBox 事件,另一个用于 Button 事件 - 但是我什至不确定我在这里是否走在正确的道路上我完全错过了一些东西。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM