2010-11-19 59 views
4

我有一個用戶控件,包含一個文本框和兩個按鈕。
該控件被放置在一個對話框上,當我通過對話框選項卡上的控件時,我體驗到了正確的行爲 - 首先是文本框的重點,然後一個按鈕,然後是另一個按鈕

但是,當我將用戶控件設置爲鍵盤快捷鍵
的目標設置爲標籤的「_」(例如按alt + r「_Row count」)時,用戶控件
未收到任何焦點。試圖執行「gotkeyboardfocus」,並設置
焦點到那裏的文本框控件,但它不起作用。焦點沒有正確輸入目標用戶控件

回答

1

默認情況下,UserControl不是可調焦的,因此您必須將其打開才能使其工作。

<my:UserControl1 x:Name="userControl11" Focusable="True" .../> 
<Label Target="userControl11">_Row count</Label> 

然後你就可以專注所需的文本框的用戶控件的內部時,臨危焦點

private void UserControl_GotFocus(object sender, RoutedEventArgs e) 
{ 
    textBox.Focus(); 
} 
+0

GotFocus/Focus技術看起來非常難看,但我不確定是否有更好的方法來做到這一點。 – 2010-11-19 13:23:06

+0

確實如此..設置userControl.textBox不起作用,所以我想不出一個更好的方法 – 2010-11-19 13:42:32

+0

這個作品,謝謝。我只是確保在事件處理程序中該對象尚未集中 - 否則您無法退出該對象。 – Greg 2010-11-22 09:12:26

0

您好我最近遇到的重點問題。我所做的是從我的用戶控件中創建一個名爲SetFocus()的方法。然後在該用戶控件中,我調用消費者的.SetFocus()之後,直接將焦點設置到我的文本框控件中。

public void SetFocus() 
{ 
this.txtCommand.Focus(); 
}