如何告诉我的TabControl将焦点设置为第一个TabItem,如下所示:
伪码:
((TabItem)(MainTabControl.Children[0])).SetFocus();
答案 0 :(得分:25)
这个怎么样?
MainTabControl.SelectedIndex = 0;
答案 1 :(得分:8)
this.tabControl1.SelectedTab = this.tabControl1.TabPages["tSummary"];
我发现通常最好的做法是命名您的标签并通过名称访问它,以便在其他人(或您)添加或替换选项卡时作为更新的一部分,您不必去通过您的代码,找到并修复所有这些“硬编码”索引。希望这有帮助。
答案 2 :(得分:5)
我意识到很久以前就已经回答了这个问题,但是更好的解决办法是将你的项目绑定到模型中的一个集合,并公开一个选定项目所绑定的属性。
XAML:
<!-- MyTemplateForItem represents your template -->
<TabControl ItemsSource="{Binding MyCollectionOfItems}"
SelectedItem="{Binding SelectedItem}"
ContentTemplate="{StaticResource MyTemplateForItem}">
</TabControl>
代码背后:
public ObservableCollection<MyItem> MyCollectionOfItems {
get;
private set;
}
private MyItem selectedItem;
public MyItem SelectedItem{
get { return selectedItem; }
set {
if (!Object.Equals(selectedItem, value)) {
selectedItem = value;
// Ensure you implement System.ComponentModel.INotifyPropertyChanged
OnNotifyPropertyChanged("SelectedItem");
}
}
}
现在,您只需设置项目即可:
MyItem = someItemToSelect;
您可以对SelectedIndex
属性使用相同的逻辑,此外,您可以同时使用这两个属性。
这种方法允许您将模型与UI正确分开,这可以让您将TabControl
替换为其他内容,但不要求您更改基础模型。
答案 3 :(得分:3)
查看选项卡控件的属性... 展开TabPages属性“集合”... 记下你给会员的名字。
即。一个名为tabMain的选项卡控件,带有2个选项卡,名为tabHeader和tabDetail
然后选择任一标签...您必须使用标签名
进行设置tabMain.SelectedTab = tabHeader;
答案 4 :(得分:2)
tabControl1.SelectedTab = item;
item.Focus();
答案 5 :(得分:1)
tabControl.SelectedItem = tabControl.Items [0];
答案 6 :(得分:1)
如果您有一个名为tabControl的Tabcontroller,您可以使用不同的方法设置selectedIndex,我主要使用以下方法。
代码隐藏:
tabControl.SelectedIndex = 0; // Sets the focus to first tabpanel
客户机侧:
首先,将以下javascript放在aspx / ascx文件中:
<script type="text/javascript">
function SetActiveTab(tabControl, activeTabIndex) {
var activeTab = tabControl.GetTab(activeTabIndex);
if(activeTab != null)
tabControl.SetActiveTab(activeTab);
}</script>
然后将以下clientide事件添加到首选控制器:
OnClientClick="function(s, e) { SetActiveTab(tabControl, 0);
答案 7 :(得分:0)
最好使用以下类型的代码来选择特定代码 特定标签中的项目......
private void PutFocusOnControl(Control element)
{
if (element != null)
Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Input,
(System.Threading.ThreadStart)delegate
{
element.Focus();
});
}
在呼唤时间...... tabcontrol.isselected = true; PutFocusOnControl(TextBox1中);
会很好......
答案 8 :(得分:0)
Private Sub TabControl1_SelectedIndexChanged(sender as Object,e As EventArgs)处理TabControl1.SelectedIndexChanged “MSGBOX(TabControl1.SelectedIndex)
If TabControl1.SelectedIndex = 0 Then
txt_apclntFrstName.Select()
Else
txtApplcnNo.Select()
End If
End Sub
答案 9 :(得分:0)
基本上,这里的所有答案都与 SELECTION 有关,该答案不能回答问题。
也许这就是OP想要的,但是这个问题非常具体地要求提供 FOCUS 。
TabItem item = (TabItem)MainTabControl.Items[0];
// OR
TabItem item = (TabItem)MainTabControl.SelectedItem;
// Then
item.Focus();