2016-11-01 9 views
1

TabControlと4つのTabItemのウィンドウがあります。タブが選択されている場合は、フォーカスを右textBoxに変更する必要があります。それを行うにはいくつかの正しい方法はありますか? TabControl_SelectionChangedイベントを使用しようとしましたが、動作しないようです。TabItemに変更したときのフォーカス

private void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    if (((TabItem)((TabControl)sender).SelectedItem).Name == "tab2") 
    { 
     UpdateLayout(); 
     textBox2EAN.Focus(); 
    } 
    e.Handled = true; 
} 

しかし、私がtab2をクリックすると、DataGridsのチェックボックスの列にフォーカスがあります。

のTabItem:...

<TabItem Name="tab2" Header="2" Width="50"> 
    <Grid>  
     <DataGrid Name="dataGrid" Margin="1" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="3" 
       VerticalAlignment="Stretch" HorizontalAlignment="Stretch" MouseDoubleClick="dataGrid_MouseDoubleClick" 
       ItemsSource="{Binding RadkyDokladu.radky}" CanUserSortColumns="False" PreviewKeyDown="dataGrid_PreviewKeyDown" 
       AutoGenerateColumns="False" IsReadOnly="True" FontSize="12" SelectionMode="Single" > 
      <DataGrid.Columns> 
       <DataGridCheckBoxColumn Header="" Binding="{Binding ZASKRTNUTO}" Width="auto" /> 
       <DataGridTextColumn Header="Náz" Binding="{Binding Artikl_NAME}" Width="*"/> 
      </DataGrid.Columns> 
     </DataGrid> 
     <TextBox Name="textBox2EAN" Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="2" Margin="1" 
       VerticalContentAlignment="Center" /> 
    </Grid> 
</Tabitem> 
+0

が正しくに追加する方法ですTabControl.SelectedIndexChangedイベントですか? – Poody

+0

Im ' – Sk1X1

+0

を使用しています。テキストボックスがチェックボックスにジャンプする前にフォーカスを取得するのですか? – Poody

答えて

2

彼らは準備ができているとき、あなただけのTabItem移動フォーカス内のコントロールをXAMLに移動してみましょうことができます。

<TabItem Name="tab2" Header="2" Width="50"> 
    <Grid FocusManager.FocusedElement="{Binding ElementName=textBox2EAN}"> 
     <DataGrid /> 
     <TextBox Name="textBox2EAN" /> 
    </Grid> 
</TabItem> 
+0

ありがとう!私は前にこれを試して、うまくいきませんでした...だから私はもう一度試してみて、それは有望です..ありがとうagain – Sk1X1

+0

@ Sk1X1、問題ありません。コード内でフォーカスを切り替えることができない場合は、機能するはずです。 – icebat

関連する問題