Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 23.11.2023
Сообщений: 10

Создание пароля для вкладки в TabControl

23.11.2023, 10:45. Показов 1589. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени, уважаемые форумчане
Имею 5 вкладок (tabPage) в форме TabControl. Приложение WindowsForms(.NET Framework) на языке C#
Собственно задача:
При нажатии на вкладку, например tabPage1, всплывает окно авторизации (пароль), при верном заполнении которого открывается доступ к редактированию данных в выбранной вкладке.
Подскажите пожалуйста. каким образом можно реализовать поставленную задачу.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.11.2023, 10:45
Ответы с готовыми решениями:

Создание объекта по кнопке (вкладки в TabControl)
Как сделать чтоб при нажатии по кнопке создавалась в tabControl1 закладка а в ней создавался richTextBox1 вот код кнопки ...

Создание вкладки TabControl-а с файла ресурсов
Здравствуйте, есть файл ресурсов: // Generated by ResEdit 1.6.6 // Copyright (C) 2006-2015 // http://www.resedit.net #include...

Создание Tabpage в tabControl: не видно названия вкладки
Динамически создавая TabPage в tabContorol, столкнулся с проблемой: не видно названия вкладки... TabPage Today_list = new TabPage(); ...

24
0 / 0 / 0
Регистрация: 23.11.2023
Сообщений: 10
24.11.2023, 10:47  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от wizard41 Посмотреть сообщение
Да не важно, хоть 100 вкладок и операторов.
Мой пример призван показать механизм показа/скрытия вкладок, которые "не для операторов"...
Мне удалось с вашей помощью реализовать свой пример. Механизм скрытия вкладок усвоилpublic MainForm()
{
InitializeComponent();
Form1 = new AuthForm (this);
Form1.ShowDialog();
if (currentRole != Role.Tech)
tabControl1.TabPages.Remove(tabPage3);
if (currentRole != Role.Contr)
tabControl1.TabPages.Remove(tabPage4);//Добавил еще одну вкладку "контроль"
}
}
public enum Role { NoRole, Oprt, Tech, Contr }// Добавил Contr

Добавлено через 1 минуту
C#
1
2
3
4
5
6
7
8
9
10
11
12
public MainForm()
        {
            InitializeComponent();
            Form1 = new AuthForm (this);
            Form1.ShowDialog();
            if (currentRole != Role.Tech)
                tabControl1.TabPages.Remove(tabPage3);
            if (currentRole != Role.Contr)
                tabControl1.TabPages.Remove(tabPage4);
        }
    }
    public enum Role { NoRole, Oprt, Tech, Contr }
Добавлено через 2 минуты
А вот обратный механизм отображения вкладок усвоил не до конца (уже день пытаюсь усвоить)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
private void btnOk_Click(object sender, EventArgs e)
        {
            if (cmbRole.SelectedIndex == 1)
            {
                if (!PasswordValidate())
                {
                    maskTxtPassword.Text = string.Empty;
                    MessageBox.Show("Неверный пароль!");
                }
                else if (PasswordValidate())
                {
                    mainForm.currentRole = Role.Tech;
                    Hide();
                    mainForm.currentRole = Role.Contr;
                    Hide();
                }
            }
            else
            {
                mainForm.currentRole = Role.Oprt;
                Hide();
            }
        }
Как отобразить 2 скрытые вкладки Tech и Contr? В приведенном примере кода всегда отображается только вкладка Contr
0
0 / 0 / 0
Регистрация: 23.11.2023
Сообщений: 10
24.11.2023, 10:55  [ТС]
Файл своего проекта выкладываю
Вложения
Тип файла: rar ControlTab_Password.rar (65.0 Кб, 0 просмотров)
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
24.11.2023, 11:54
Tanis1988, enum Role - это перечисление Ролей, т.е. тех, кто "заходит" в данный сеанс приложения. Зайти в приложение может только кто-то один, а не целая толпа с разными привилегиями.
Цитата Сообщение от Tanis1988 Посмотреть сообщение
else if (PasswordValidate())
                {
                    mainForm.currentRole = Role.Tech;
                    Hide();
                    mainForm.currentRole = Role.Contr;
                    Hide();
                }
Что ты тут пытаешься сделать? Зайти сразу под двумя ролями? Не выйдет - на выходе из окна авторизации ты получишь последнюю, т.е. Role.Contr, поэтому ты видишь только ее вкладку.
0
0 / 0 / 0
Регистрация: 23.11.2023
Сообщений: 10
24.11.2023, 12:08  [ТС]
Тогда при вот такой реализации кода получаю необходимый мне эффект:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    public partial class MainForm : Form
    {
        AuthForm Form1;
        public Role currentRole { get; set; } = Role.NoRole;
 
        public MainForm()
        {
            InitializeComponent();
            Form1 = new AuthForm (this);
            Form1.ShowDialog();
            if (currentRole != Role.Tech)
                tabControl1.TabPages.Remove(tabPage3);
            if (currentRole != Role.Tech)
                tabControl1.TabPages.Remove(tabPage4);
        }
    }
    public enum Role { NoRole, Oprt, Tech}
}

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 private void btnOk_Click(object sender, EventArgs e)
        {
            if (cmbRole.SelectedIndex == 1)
            {
                if (!PasswordValidate())
                {
                    maskTxtPassword.Text = string.Empty;
                    MessageBox.Show("Неверный пароль!");
                }
                else if (PasswordValidate())
                {
                    mainForm.currentRole = Role.Tech;
                    Hide();   
                }
            }
            else
            {
                mainForm.currentRole = Role.Oprt;
                Hide();
            }
        }
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
24.11.2023, 12:53
Цитата Сообщение от Tanis1988 Посмотреть сообщение
получаю необходимый мне эффект
Да, только зачем два одинаковых сравнения? Одно явно лишнее:
C#
1
2
3
4
5
if (currentRole != Role.Tech)
{
    tabControl1.TabPages.Remove(tabPage3);
    tabControl1.TabPages.Remove(tabPage4);
}
Добавлено через 2 минуты
C#
1
else if (PasswordValidate())
тоже не нужное сравнение. else достаточно - оно и так подразумевает, что введенный пароль корректен.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.11.2023, 12:53

Убрать вкладки у tabControl для самостоятельной навигации
Всем привет! Ребят подскажите как можно убрать табы (ярлычки с названиями) у этого контрола. Я хочу сделать навигацию через кнопки,...

Шаблонная страница для новой вкладки TabControl
Можно ли сделать шаблон страницы для TabControl что бы при добавлении новой вкладки на странице были такие же элементы?

Создание TabControl в TabPage, а в этом TabControl создать RichTextBox
Нужно создать TextBox и кнопку,при нажатии на кнопку в уже созданом TabControl создаётся новая вкладка(ну TabPage)и в этой вкладке еще...

Вкладки tabcontrol
Добрый день! Всех с праздником! По нажатию кнопки создаю новую вкладку TabPage в tabcontrol, в ней у меня создаются listbox и datagridview....

Вкладки в Tabcontrol
Здравствуйте уважаемые разработчики! У меня появился такой вопрос, как с помощью tabcontrol можно создать вкладки в два или несколько рядов...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru