加载对话框时如何防止 TextChanged 事件

How to prevent TextChanged event when dialog is loading

我的程序中有一个带有 2 个文本框的对话框; 路径前缀。以及以下事件。

  Private Sub Path_TextChanged(sender As Object, e As EventArgs) Handles Path.TextChanged
        Prefix.Text = GetDefaultPrefix(Path.Text)
   End Sub

我的路径有一个在显示对话框之前设置的默认值。

我不希望在加载对话框时调用 GetDefaultPrefix,但仅在之后更改路径值时调用。可以这样做吗?

您可以添加旧的 Boolean hack,在其中创建一个设置为 True 的布尔值,在 Load 事件中将值更改为 False,并且在 TextChanged 事件中仅在值为 False 时才执行代码:

Private is_startup As Boolean = True
Private Sub FormDialog_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
    is_startup = False
End Sub

Private Sub Path_TextChanged(sender As Object, e As EventArgs) Handles Path.TextChanged
    If Not is_startup Then Prefix.Text = GetDefaultPrefix(Path.Text)
End Sub