Arvi.S Ответов: 2

Отключите вкладку страница нажмите кнопку действие в событии управления вкладками


Привет, команда. Я разработал небольшой выигрыш форм, которое имеет вкладок для переключения между вкладками.Форма состоит из двух закладок.
Заранее спасибо за помощь.

Критерии что мне нужно:

1. страницы вкладок не должны выбираться щелчком мыши

Что я уже пробовал:

Код для отключения ручного выбора вкладки.(НЕ РАБОТАТЬ)

 private void tabControl1_Click(object sender, EventArgs e)
        {            
           if (tabControl1.SelectedTab == tabPage2)
{
tabControl1.SelectedTab = tabPage1;
MessageBox.Show("You don’t have permission !!");
}   

else if(tabControl1.SelectedTab == tabPage1)
{
tabControl1.SelectedTab = tabPage2;
MessageBox.Show("You don’t have permission !!");
}   
   }


Код для перенаправления с tabpage1 на tabpage2(работает хорошо)

 private void t1NextTabRedirectButton_Click(object sender, EventArgs e)
        {    
            tabControl1.SelectedTab = tabPage2;
}

2 Ответов

Рейтинг:
2

Ralf Meier

Попробуй вот так :

public class myTabControl : TabControl
{
    protected override void OnSelecting(TabControlCancelEventArgs e)
    {
        e.Cancel = true;
        base.OnSelecting(e);
    }

    protected override void OnMouseClick(MouseEventArgs e)
    {
        MsgBox("! No Permission !");
    }

}


Arvi.S

В приведенном выше коде вы пытаетесь отменить щелчок мыши. Я попробовал ваш код и не получил никакого положительного результата.. А как иначе?? Небольшие изменения были внесены в мой код, который я изменил оуве. Будьте добры позаботиться об этом

Ralf Meier

Я не понимаю...
Конечно... вы можете выбрать 2-ю вкладку ... но управление на него не переключается ...
Так что если этот фрагмент кода-не то, что вам нужно ... что именно вам нужно ?

Ralf Meier

Я кое - что изменил-может быть, вы взглянете на это.
Теперь элемент управления больше не вызывает событие MouseClick-event ...

Рейтинг:
0

Samuel Corpuz

private void tabControl_MouseDown(object sender, MouseEventArgs e)
{
    if (tabControl.SelectedTab == tabPage2)
{
tabControl.SelectedIndex = 0;
tabControl.SelectedTab = tabPage1;
MessageBox.Show("Action Denied!!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
      else if (tabControl.SelectedTab == tabPage1)
{
tabControl.SelectedTab = tabPage2;
MessageBox.Show("Action Denied!!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}


Arvi.S

В вышеприведенном коде, который вы послали, нет ответа. Есть ли какое-то другое решение?

Samuel Corpuz

Вы пытались его отредактировать?

Samuel Corpuz

перейдите к событию mousedown вашего tabcontrol
тогда вам подскажут, к tabControl1_Mousedown

скопируйте и вставьте это это будет исправлено
if (tabControl1.SelectedTab == tabPage2)
{
tabControl1.SelectedTab = tabPage1;
Ящик для сообщений.Показать("у вас нет разрешения !!");
}

else if(tabControl1.SelectedTab == tabPage1)
{
tabControl1.SelectedTab = tabPage2;
Ящик для сообщений.Показать("у вас нет разрешения !!");
}

Arvi.S

Тот же самый код я попробовал использовать с именами, которые сохранил. Но даже тогда это не работает!