当MainWindow加载事件存在时,TextBox TextChanged事件触发了问题

时间:2017-09-13 01:09:28

标签: c# wpf vb.net winforms

下图显示了我的项目。

My project

以下是我的测试需求的项目代码。

<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="150" Width="400">
<Grid>
    <TextBox Name="TextBox1" Width="200" Height="30" HorizontalAlignment="Left" Background="Pink" />
    <Button Name="Button1" Content="Button1" Width="125" Height="30" HorizontalAlignment="Right" IsEnabled="False" />
</Grid>
</Window>

...

Class MainWindow 

Private Sub MainWindow_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
    TextBox1.Text = "Hello"
End Sub

Private Sub TextBox1_TextChanged(sender As System.Object, e As System.Windows.Controls.TextChangedEventArgs) Handles TextBox1.TextChanged
    Button1.IsEnabled = True
End Sub

End Class

当我运行由于MainWindow_Loaded事件而触发的TextBox1_TextChanged事件之上的代码时。

您是否知道如何在MainWindow_Loaded之后触发TextBox1_TextChanged事件?

3 个答案:

答案 0 :(得分:0)

当textbo1生成其文本属性更改并且正在触发事件时。在像

这样加载表单后,您可以向textbox1添加事件处理程序
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    AddHandler TextBox1.TextChanged, AddressOf TextBox1_TextChanged
End Sub
Private Sub TextBox1_TextChanged()
    Button1.Enabled = True
End Sub End Class

答案 1 :(得分:0)

如果仅在文本框中包含某些文本时才启用该按钮,则需要在事件处理程序中检查该按钮。如果您需要任何其他验证,也可以在此处执行此操作。

Private Sub TextBox1_TextChanged(sender As Object, e As TextChangedEventArgs) Handles TextBox1.TextChanged
    Button1.IsEnabled = (TextBox1.Text.Length > 0)
End Sub

答案 2 :(得分:0)

解决。

Private Sub TextBox1_TextChanged(sender As System.Object, e As System.Windows.Controls.TextChangedEventArgs) Handles TextBox1.TextChanged
    If TextBox1.IsFocused Then
        Button1.IsEnabled = True
    End If
End Sub