Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
7 / 7 / 2
Регистрация: 29.04.2009
Сообщений: 411
1

TabPage и элементы управления на них

02.04.2012, 19:13. Показов 1788. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
на форме Form1 есть члены класса Form1
C#
1
2
3
4
5
6
7
8
9
10
11
        TabPage tabPage_this;
        Panel panel_game;
        Label teamGuest;
        Label teamHome;
        TextBox resHome;
        TextBox resGuest;
        CheckBox OT;
        CheckBox SH;
        Button btnNext;
        Button btnPrev;
        Button btnAddProg;
По нажатию на клавишу создается tabPage_tmp. И присваивается в tabPage_this.
После все элементы инициализируются, получают значения и добавляются на tabPage_this.

Далее по нажатию клавиши добавляю еще одну tabPage. При выборе этой страницы, она присваивается в tabPage_this. Все элементы инициализируется по новой и им присваиваются новые значения.
На этом этапе все ок. Переключаю на предыдущую tabPage, соответственно по новой все элементы переиначиваются. Но они продолжают изменяться на той, скрытой вкладке. На новой изменений не происходит.

C#
1
2
3
4
5
6
7
8
9
10
11
12
        private void btnNewDay_Click(object sender, EventArgs e)
        {
            TabPage tabPage_tmp = new TabPage("День " + (Program.list_days.Count+1));
           
            if (tabPage_this == null) tabPage_this = tabPage_tmp;
            tabControl1.Controls.Add(tabPage_tmp);
 
            if (game_day == Program.list_days.Count)
                BtnAddDay = true;
           
            btnNewDay.Enabled = false;
        }
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
        public void after_addnewday()
        {
            btnNext = new Button();
            btnNext.Text = ">>";
            btnNext.Size = new Size(75, 23);
            btnNext.Location = new Point(495, 6);
            btnNext.UseVisualStyleBackColor = true;
            this.btnNext.Click += new System.EventHandler(this.btnNext_Click);
 
            btnPrev = new Button();
            btnPrev.Text = "<<";
            btnPrev.Size = new Size(75, 23);
            btnPrev.Location = new Point(101, 6);
            btnPrev.UseVisualStyleBackColor = true;
            this.btnPrev.Click += new System.EventHandler(this.btnPrev_Click);
 
            btnAddProg = new Button();
            btnAddProg.Text = "Добавить прогнозы";
            btnAddProg.Size = new Size(391, 92);
            btnAddProg.Location = new Point(176, 125);
            btnAddProg.UseVisualStyleBackColor = true;
            this.btnAddProg.Click += new System.EventHandler(this.btnAddProg_Click);
 
            resHome = new TextBox();
            resHome.Location = new Point(192, 9);
            resHome.Size = new Size(22, 20);
 
            resGuest = new TextBox();
            resGuest.Location = new Point(229, 9);
            resGuest.Size = new Size(22, 20);
 
            teamHome = new Label();
            teamHome.AutoSize = true;
            teamHome.Text = ((Program.list_days[game_day])[thisgame])[0];
            teamHome.Location = new Point(26, 12);
            teamHome.Size = new Size(0, 13);
 
            teamGuest = new Label();
            teamGuest.AutoSize = true;
            teamGuest.Text = ((Program.list_days[game_day])[thisgame])[1];
            teamGuest.Location = new Point(110, 12);
            teamGuest.Size = new Size(0, 13);
            
            OT = new CheckBox();
            OT.AutoSize = true;
            OT.Location = new Point(264, 2);
            OT.Size = new Size(41, 17);
            OT.Text = "ОТ";
            OT.UseVisualStyleBackColor = true;
 
            SH = new CheckBox();
            SH.AutoSize = true;
            SH.Location = new Point(264, 20);
            SH.Size = new Size(41, 17);
            SH.Text = "SH";
            SH.UseVisualStyleBackColor = true;
 
            panel_game = new Panel();
            panel_game.Location = new Point(182, 6);
            panel_game.Size = new Size(307, 38);
 
            panel_game.Controls.Add(resGuest);
            panel_game.Controls.Add(resHome);
            panel_game.Controls.Add(SH);
            panel_game.Controls.Add(OT);
            panel_game.Controls.Add(teamGuest);
            panel_game.Controls.Add(teamHome);
 
            tabPage_this.Controls.Add(panel_game);
            tabPage_this.Controls.Add(btnAddProg);
            tabPage_this.Controls.Add(btnPrev);
            tabPage_this.Controls.Add(btnNext);
            tabPage_this.BackColor = Color.White;
 
        }
C#
1
2
3
4
5
6
7
8
9
10
11
12
private void tabControl1_Selected(object sender, TabControlEventArgs e)
        {
            game_day = tabControl1.SelectedIndex;
            thisgame = 0;
 
            if (Program.list_days.Count < tabControl1.SelectedIndex + 1)
                BtnAddDay = true;
            else BtnAddDay = false;
 
            tabPage_this = tabControl1.SelectedTab;
            if (game_day<Program.list_days.Count) after_addnewday();
        }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.04.2012, 19:13
Ответы с готовыми решениями:

Смешение позиций кнопок, при удалении одной из них(как TabPage)
Динамически создаю набор кнопок: x++;//при создании новой кнопки растет(при объявлении int x=0)...

Не отображаются элементы на TabPage в TabControl
Дело в том, что когда я динамически создаю TabControl, а так же 2 TabPage на нем, отображаются...

Добавить элементы в tabpage программно
Доброго времени суток! Возникла проблема,не знаю как добавить на tabpage элементы.А точнее...

TabPage, как получить элементы на вкладках?
Подскажите неделю мучаюсь. Делаю Тестовую Оболочку. Создаю в динамике несколько TabPages в...

2
251 / 163 / 14
Регистрация: 10.03.2012
Сообщений: 544
02.04.2012, 21:00 2
Попробуйте переписать процедуру tabControl1_Selected(...) так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
private void tabControl1_Selected(object sender, TabControlEventArgs e)
        {
            game_day = e.TabPageIndex;
            thisgame = 0;
 
            if (Program.list_days.Count < e.TabPageIndex + 1)
                BtnAddDay = true;
            else BtnAddDay = false;
 
            tabPage_this = e.TabPage;
            if (game_day<Program.list_days.Count) after_addnewday();
        }
В такого рода процедурах, имхо, лучше использовать передаваемые в обработчик события свойства, содержащиеся в аргументе e.
0
7 / 7 / 2
Регистрация: 29.04.2009
Сообщений: 411
03.04.2012, 06:05  [ТС] 3
iprog, Не помогло. Я не совсем верно описал - при переключении вкладки элементы отображаются в нужном, нулевом, состоянии для той вкладки. но по кнопкам btnNext и btnPrev на вкладке должны листаться данные. Вот именно этого не происходит.
Причем, если смотреть по отладчику, то вроде все хорошо - элементы получают новые значения. но при этом на форме все остается как есть.
0
03.04.2012, 06:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.04.2012, 06:05
Помогаю со студенческими работами здесь

Доступ к содержимому TabPage в TabPage
есть tabpage и внутри него еще несколько tabpage, как получить доступ к их содержимому? помогите,...

В массиве В(20) определить элементы делящиеся на 4 без остатка, и сформировать из них новый масив С, подсчитав количество таких элементов и min из них
В массиве В(20) определить элементы делящиеся на 4 без остатка, и сформировать из них новый массив...

Как сделать чтобы панели элементов управления находились "элементы управления" нужного формата?
По умолчанию формат &quot;элемента управления&quot; &quot;Поле&quot;: высота - 0,556 см; ширина - 3,0 см; ...

Элементы управления, созданные в одном потоке, не могут быть родительскими для элемента управления в другом потоке
Привет :) Есть задача - нужно динамически добавлять компоненты. Все работает хорошо. Но если...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru