2013-05-30 52 views
0

我有一個文本框和DataGrid隱藏DataGrid中同時文本框失去其焦點IF的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上的任何項目,也可以使用此代碼。

我的代碼有問題嗎?

回答

1

我不確定問題是什麼......您描述的行爲與您的代碼一致。

行爲可能與你所期望的不同...... 我覺得當文本框失去焦點 DataGrid中永遠不會有焦點,因爲文本框沒做完失去焦點。這是問題嗎?

如果這是問題,您可以在隱藏DataGrid之前添加某種延遲(當然,以非阻塞方式)。您可以創建一個新的線程,在隱藏該控件之前在該線程上執行一個睡眠(500),並查看會發生什麼。 您還需要注意,因爲只有UI線程可能會更改可見控件,但如果您選擇這樣做,您可能會要求進一步的幫助。

我希望它有幫助。

0

當文本框引發LostFocus甚至被解僱.. GridView控件尚未集中..

所以,加上類似於使用你的絕招在此之後

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 
+0

相同的結果。 – Vishal

相關問題