Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
грехов
1 / 1 / 0
Регистрация: 28.03.2017
Сообщений: 50
Записей в блоге: 1
1

Как проверить существует вкладка или нет?

22.01.2019, 20:35. Просмотров 900. Ответов 6
Метки нет (Все метки)

Мне на tabcontrol, перед тем, как создать страницу, хочу проверить есть вкладка на ней или нет. Делаю так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
string[] ms = main_TabControl.TabPages.Cast<TabPage>().Select(x => x.Name).ToArray(); 
        for (int i = 0; i < ms.Length; i++)
        {
           if (ms[i] != "Химия")
           {my_VarTabPage = new TabPage("Химия");
                main_TabControl.TabPages.Add(my_VarTabPage);
                my_VarTreeView = _dinamicControl.myCreateTreeNode(0, 0, main_TabControl.Width / 5, main_TabControl.Height - 30, partChemystryTree);
                my_VarTabPage.Controls.Add(my_VarTreeView);
                main_TabControl.SelectedTab = my_VarTabPage;
                my_VarTreeView.NodeMouseDoubleClick += myVarCTreeView_NodeMouseDoubleClick;
            }
            else {  main_TabControl.SelectedTab = my_VarTabPage;
                }
        }
Делал так:
C#
1
2
3
4
5
6
7
8
9
10
11
if (main_TabControl.TabPages.ContainsKey("Химия"))
       {
           main_TabControl.SelectTab("Химия");
               
            }
            else {   my_VarTabPage = new TabPage("Химия");
                main_TabControl.TabPages.Add(my_VarTabPage);
                my_VarTreeView = _dinamicControl.myCreateTreeNode(0, 0, main_TabControl.Width / 5, main_TabControl.Height - 30, partChemystryTree);
                my_VarTabPage.Controls.Add(my_VarTreeView);
                main_TabControl.SelectedTab = my_VarTabPage;
                my_VarTreeView.NodeMouseDoubleClick += myVarCTreeView_NodeMouseDoubleClick;}
Любой из кодов, все равно создает вкладку и если есть, создает вторую такую же вкладку. Надо чтоб одну создавало и все. Не могу понять, какое условие поставить.
Суть такая, если есть вкладка переключить на нее фокус. Если нет вкладки, создать её.
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2019, 20:35
Ответы с готовыми решениями:

Как проверить, существует ли директория или нет
Доброе время суток. Вот столкнулся с такой задачкой, нужно проверить существует ли директория,...

Как проверить если ли значение в textBox или нет
Здравствуйте У меня обработчик событий должен проверять правильное ли значение ввели и есть ли оно...

Как проверить подключено ли какое нибудь устройство к com порту или нет?
Как проверить подключено ли какое нибудь устройство к com порту или нет?

Проверить, распечатался документ или нет
Возникла следующая проблема: хочу обработать отпечатался ли документ или нет. Почитал, вроде нужно...

6
OwenGlendower
Супер-модератор
Эксперт .NET
11560 / 9738 / 4077
Регистрация: 17.03.2014
Сообщений: 19,408
Записей в блоге: 1
Завершенные тесты: 2
22.01.2019, 20:53 2
Лучший ответ Сообщение было отмечено грехов как решение

Решение

грехов, второй пример должен работать. Нужно только немного его модифицировать
C#
6
            else {   my_VarTabPage = new TabPage("Химия") { Name = "Химия" };
1
грехов
1 / 1 / 0
Регистрация: 28.03.2017
Сообщений: 50
Записей в блоге: 1
22.01.2019, 21:49  [ТС] 3
Создаю страницу со своими параметрами, пишет Name не существует. Как Решить проблему?
C#
1
_myTabPage = _dinamicControl.myCreateTabPage("_3D_Atom", "3D "+nameElement, _tabContr.Width, _tabContr.Height, _tabContr.TabCount) { Name = "3D "+nameElement };
0
OwenGlendower
Супер-модератор
Эксперт .NET
11560 / 9738 / 4077
Регистрация: 17.03.2014
Сообщений: 19,408
Записей в блоге: 1
Завершенные тесты: 2
22.01.2019, 22:10 4
грехов, синтакcис { Name = "3D "+nameElement } называется инициализатор объекта и может использоваться только в конструкции new. Здесь он вообще не нужен. Ты же уже передаешь имя в свойй метод. Там и делай инициализацию свойства Name.
1
грехов
1 / 1 / 0
Регистрация: 28.03.2017
Сообщений: 50
Записей в блоге: 1
24.01.2019, 14:08  [ТС] 5
Это ясно. Когда я использую Name, тогда копия страницы не создается, при условии что она включена. Хотелось бы, создавать страницу со своими параметрами, при этом сделать, чтоб копия не создавалась.
0
OwenGlendower
Супер-модератор
Эксперт .NET
11560 / 9738 / 4077
Регистрация: 17.03.2014
Сообщений: 19,408
Записей в блоге: 1
Завершенные тесты: 2
24.01.2019, 17:11 6
грехов, так мы вроде уже разобрались как это сделать. Что из себя предстааляет метод myCreateTabPage? Это его код ты приводил в первом сообщении? Если да, то выложи его целиком как он сейчас выглядит.
0
грехов
1 / 1 / 0
Регистрация: 28.03.2017
Сообщений: 50
Записей в блоге: 1
24.01.2019, 17:44  [ТС] 7
Для ясности
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
public TabPage myCreateTabPage(String _nameTP, String _textTP, int tabCount)
        {
            TabPage tp = new TabPage();
 
            tp.Location = new Point(0, 0);
            tp.Name = _nameTP + tabCount.ToString();
            //tp.Size = new Size(sizeX, sizeY);
            tp.TabIndex = tabCount + 1;
            tp.Text = _textTP;
            tp.UseVisualStyleBackColor = true;
 
            return tp;
        }
Да, вопрос решили. Хотелось знать, как это сделать для динамического создания. Как у меня. Стандартный метод c# не очень подходит. Я использовал для всех контролов, такой метод. Это надо, чтоб в любом месте с моими заданными параметрами. Пример:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public Button myCreateButton(int pointX, int pointY, int sizeX, int sizeY, string _name, string _text, string _tag, Color bColor)
        {
            Button but = new Button();
 
            but.Location = new System.Drawing.Point(pointX, pointY);
            but.BackColor = bColor;
            but.Name = _name;
            but.Size = new System.Drawing.Size(sizeX, sizeY);
            but.TabIndex = 2;
            but.Text = _text;
            but.UseVisualStyleBackColor = true;
            but.Tag = _tag;
 
            return but;
        }
0
24.01.2019, 17:44
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.01.2019, 17:44

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

как проверить существует ли веб адрес?
как проверить существует ли веб адрес?Если существует выполнить определенный код, а если не...

Проверить есть ли Attachment или нет. VkNet
Добрый день, форумчане! Пытаюсь из беседы ВК вытянуть все фотки, но проблема в том, что как...

Алгоритм RC6: при расшифровке проверить, правильный был ключ или нет
После расшифровки файла как его проверить в C# правильный был ключ или нет!!!

Как узнать сколько файлов в каталоге, и проверить, существует такой файл, или нет?
подскажите пожалуйста, как узнать сколько файлов в коталоге , и как проверить существует такой...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.