Как я могу сделать особый фокус усиления TabItem на TabControl без события click?

Как я могу сказать, что TabControl настроит фокус на свой первый TabItem, что-то вроде этого:

псевдокод:

((TabItem)(MainTabControl.Children[0])).SetFocus();

Ответы

Ответ 1

Как насчет этого?

MainTabControl.SelectedIndex = 0;

Ответ 2

this.tabControl1.SelectedTab = this.tabControl1.TabPages["tSummary"];

Я нашел, что обычно лучше назвать ваши вкладки и получить доступ к ним через имя, чтобы, если/когда другие люди (или вы) добавляете или подставляете вкладки как часть обновления, вам не нужно идти через свой код и найти и исправить все эти "жестко закодированные" индексы. надеюсь, что это поможет.

Ответ 3

Я понимаю, что это было ответино давным-давно, однако лучшим решением было бы привязать ваши элементы к коллекции в вашей модели и выставить свойство, к которому привязан выбранный элемент.

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, далее вы можете использовать оба одновременно.

Этот подход позволяет вам правильно отделить вашу модель от пользовательского интерфейса, что позволит вам заменить TabControl на что-то еще по строке, но не требует изменения вашей базовой модели.

Ответ 4

Посмотрите на свойства элемента управления вкладкой... Разверните свойства вкладки TabPages... Обратите внимание на имена, которые вы дали членам.

т. элемент управления вкладкой, называемый tabMain, с двумя вкладками tabHeader и tabDetail

Затем, чтобы выбрать любую вкладку... Вы должны установить ее с именем табуляции

tabMain.SelectedTab = tabHeader;

Ответ 5

tabControl1.SelectedTab = item;
item.Focus();

Ответ 6

tabControl.SelectedItem = tabControl.Items [0];

Ответ 7

Если у вас есть Tabcontroller с именем tabControl, вы можете установить 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>

Затем добавьте следующее клиентское событие в предпочтительный контроллер:

OnClientClick="function(s, e) { SetActiveTab(tabControl, 0);

Ответ 8

лучше использовать следующий тип кода для выбора конкретного элемент в отдельной вкладке...

.

 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);

будет отлично работать...

Ответ 9

Private Sub TabControl1_SelectedIndexChanged (отправитель как объект, e As EventArgs) обрабатывает TabControl1.SelectedIndexChanged       "МздВох (TabControl1.SelectedIndex)

    If TabControl1.SelectedIndex = 0 Then
        txt_apclntFrstName.Select()
    Else
        txtApplcnNo.Select()
    End If


End Sub

Ответ 10

В основном все ответы здесь имеют дело с SELECTION, которая не отвечает на вопрос.
Может быть, это то, что хотел ОП, но вопрос очень конкретно задает вопрос ФОКУС.

TabItem item = (TabItem)MainTabControl.Items[0];
// OR
TabItem item = (TabItem)MainTabControl.SelectedItem;
// Then
item.Focus();