none
WPF Textbox.LostFocusで異常な動作 RRS feed

  • 質問

  • MainWindowから新しいウィンドウ(Window1)を表示するサンプルプログラムです。

    Window1のTextBox1_1のLostFocus後のプログラムをデバッグしたいのですが、ブレークせずMainWindowで意味不明な例外が発生します。

    例外の詳細:
    ハンドルされていない例外
    System.InvalidCastException: '型 'System.Windows.RoutedEventArgs' のオブジェクトを型 'System.Windows.Controls.TextChangedEventArgs' にキャストできません。'

    これは何が原因ですか?
    TextBox1_LostFocus()でブレークするにはどうすれば良いですか?
    御回答をお願い致します。

    ◇<MainWindow.xaml>

    <Window x:Class="MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="22222" Height="479" Width="657" BorderBrush="#FF3C8012" MaxHeight="479" MaxWidth="657" MinHeight="479" MinWidth="657">
        <Grid Width="634" Background="#FFEDE2FF" Height="444" MaxWidth="634" MinWidth="634">
            <Button Content="このボタンをクリックして開始" FontSize="14" Height="46" HorizontalAlignment="Left" Margin="58,92,0,0" x:Name="Button_1" VerticalAlignment="Top" Width="254" />
        </Grid>
    </Window>


    ◆<MainWindow.xaml.VB>

    Class MainWindow

        Private Sub Button_1_Click(sender As Object, e As RoutedEventArgs) Handles Button_1.Click
            Dim w1 As New Window1
            w1.ShowDialog()  '←ここで「ハンドルされていない例外」が発生する
            w1 = Nothing
        End Sub
    End Class


    ◇<Window1.xaml>

    <Window x:Class="Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="aaaa" Height="382" Width="556" >
        <Grid Name="MyGrid1" Height="316" Width="518" Margin="0,0,0,0" Background="#FFF2F2F2" HorizontalAlignment="Left" VerticalAlignment="Top">
            <TextBox Height="28" HorizontalAlignment="Left" Margin="56,58,0,0" x:Name="TextBox1_1" VerticalAlignment="Top" Width="245" Panel.ZIndex="2" Background="#FFF5CECE" Text="LostFocus時の動きがおかしい" />
            <TextBox Height="28" HorizontalAlignment="Left" Margin="56,126,0,0" x:Name="TextBox1_2" VerticalAlignment="Top" Width="245" Panel.ZIndex="2" Background="#FFF5CECE" />
        </Grid>
    </Window>

    ◆<Window1.xaml.VB>

    Public Class Window1

        Private Sub TextBox1_LostFocus(sender As Object, e As TextChangedEventArgs) Handles TextBox1_1.LostFocus
            Stop '←この行でブレークしないので、デバッグできない
            'デバッグしたい箇所
            Exit Sub
        End Sub

    End Class
    2019年6月6日 6:48

回答

すべての返信