Запретить переключение на вкладку в tabcontrol - PullRequest
0 голосов
/ 19 января 2010

У меня есть форма (C #) с элементом управления вкладками, которая содержит около пяти вкладок.

каждая вкладка имеет несколько текстовых полей.

1) если пользователь находится, скажем, на вкладке A и редактирует определенные поля, мне нужно проверить введенный текст если признано недействительным, то я не должен позволять какой-либо вкладки? это возможно?

2) Другой случай может быть ... пользователь редактирует некоторые значения и нажимает на другую вкладку, при этом мне нужно проверить, правильны ли значения, введенные для вкладки A, или нет? я могу это сделать?

Я новичок в C # ... поэтому, возможно, эти вопросы звучат очень основательно, любая помощь будет оценена.

также я хочу знать, что это за события вкладки

Оставить, подтверждено или проверяется?

Ответы [ 5 ]

3 голосов
/ 19 декабря 2012

У меня была похожая проблема, но, к счастью, я наткнулся на эту страницу MSDN. Просто установите вкладку выбора события и добавьте свою логику, чтобы отменить / продолжить там.

http://msdn.microsoft.com/en-us/library/system.windows.forms.tabcontrol.selecting.aspx

1 голос
/ 19 января 2010

Вы можете отключить вкладку. Это не самый лучший / простой способ, но работает. Вот как это сделать: http://social.msdn.microsoft.com/forums/en-US/winforms/thread/985b41c3-a1de-4744-8875-63262d4c2718/

0 голосов
/ 28 ноября 2017

Вы можете использовать Selecting событие TabControl. Он имеет тип: TabControlCancelEventHandler и имеет параметр типа TabControlCancelEventArgs с атрибутом Cancel.

    private void tabControl1_Selecting(object sender, TabControlCancelEventArgs e)
    {
        if (e.TabPageIndex > 0  /* && some condition still not reached */)
        {
            e.Cancel = true;
        }

       //Avoiding a tabchange from Index Zero if some condition is not accomplished yet
       //e.TabPageIndex: is the new TabIndex
       //e.Cancel == true: makes the TabControl stay in the previous tab index
    } 
0 голосов
/ 21 марта 2013

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

if(your_condition)
    this.tab1.Controls.Add(this.tabPage2);
0 голосов
/ 19 января 2010

Вы можете подключиться к TabIndexChanged на TabControl и иметь переменную, которая говорит, разрешено ли их изменять или нет, и просто переключиться обратно на оригинальную вкладку, если они не разрешены.

...