0

私はテキストボックスとDataGridを持っています

テキストボックスがフォーカスを失い、DataGrid がフォーカスされていない場合は、DataGrid を非表示にしたいと考えています。

以下のコードを使用します。

Private Sub txt_LostFocus(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs) Handles txt.LostFocus

    If DataGrid1.IsFocused = False Then
        DataGrid1.Visibility = Windows.Visibility.Hidden
    End If

End Sub

DataGrid の項目をクリックしても、このコードを使用すると、DataGrid が非表示になります。

私のコードに問題はありますか?

4

2 に答える 2

0

テキストボックスがフォーカスを失ったとき..グリッドビューはまだフォーカスされていません..

だから、このようなものを追加してください

Dim lDGVFocused as Boolean

Private Sub Datagrid1_Enter( ... ) ...

  lDGVFocused = True

End Sub

Private Sub Datagrid1_LostFocus( ... ) ...

  lDGVFocused = False

End Sub

Private Sub txt_LostFocus( ... ) ...

    If not lDGVFocused then DataGrid1.Visible = False

End Sub

Private Sub txt_GotFocus( ... ) ...

   DataGrid1.Visible = True

End Sub
于 2013-05-31T09:27:56.580 に答える