Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 1
Регистрация: 08.12.2011
Сообщений: 44

Динамическая прорисовка элементов управления

05.08.2017, 14:25. Показов 1368. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
не могу понять почему элементы управления не встают на все окошко
прорисовывается динамически

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
    while (i < kolQuest) //до тех пор пока не пройдем все вопросы
            {
                
                //конструктор для вопросов и ответов
                this.tP[i] = new TabPage();
                this.tLP[i] = new TableLayoutPanel();
                this.tB[i] = new TextBox();
                this.cLB[i] = new CheckedListBox();
 
                this.tP[i].SuspendLayout();
                this.tLP[i].SuspendLayout();
                //this.SuspendLayout();
                this.tabControl1.Controls.Add(this.tP[i]);
 
                // 
                // tabPage
                // 
                this.tP[i].Controls.Add(this.tLP[i]);
                this.tP[i].Location = new System.Drawing.Point(4, 22); //new Point(4, 22);
                this.tP[i].Name = "tabPage" + i + "";
                this.tP[i].Padding = new Padding(3);
                this.tP[i].Size = new Size(592, 362);
                this.tP[i].TabIndex = i; //увеличивать TabIndex = 0 по умолчанию для первого элемента
                this.tP[i].Text = "Вопрос " + i + "";
                this.tP[i].UseVisualStyleBackColor = true;
                // 
                // tableLayoutPanel
                // 
                /*this.tLP[i].Anchor = ((AnchorStyles)((((AnchorStyles.Top | AnchorStyles.Bottom)
                | AnchorStyles.Left)
                | AnchorStyles.Right)));*/
                this.tLP[i].ColumnCount = 1;
                this.tLP[i].ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F));
                this.tLP[i].Controls.Add(this.tB[i], 0, 0);
                this.tLP[i].Controls.Add(this.cLB[i], 0, 1);
                //
                this.tLP[i].Dock = System.Windows.Forms.DockStyle.Fill;
                this.tLP[i].Location = new Point(6, 6);
                this.tLP[i].Name = "tableLayoutPanel"+ i +"";
                this.tLP[i].RowCount = 2;
                this.tLP[i].RowStyles.Add(new RowStyle(SizeType.Percent, 33.33333F));
                this.tLP[i].RowStyles.Add(new RowStyle(SizeType.Percent, 66.66666F));
                this.tLP[i].Size = new Size(580, 350);
                this.tLP[i].TabIndex = 0;
 
                // 
                // textBox
                // 
                /*this.tB[i].Anchor = ((AnchorStyles)((((AnchorStyles.Top | AnchorStyles.Bottom)
                | AnchorStyles.Left)
                | AnchorStyles.Right)));*/
                this.tB[i].Dock = System.Windows.Forms.DockStyle.Fill;
                this.tB[i].BorderStyle = BorderStyle.FixedSingle;
                this.tB[i].Location = new Point(3, 3);
                this.tB[i].Multiline = true;
                this.tB[i].Name = "tBQuestion"+i+"";
                this.tB[i].Size = new Size(574, 110);
                this.tB[i].TabIndex = 0;
 
               /* ---------------------------------------------------------------------------- */
            }
Миниатюры
Динамическая прорисовка элементов управления  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.08.2017, 14:25
Ответы с готовыми решениями:

Прорисовка прямоугольника поверх дочерних элементов управления контейнера
Я столкнулся со следующей проблемой. У меня на форме есть элемент управления Panel в котором динамически создаются PictureBox. Мне...

Показать форму только тогда, когда закончилась прорисовка всех элементов управления
Здравствуйте! Вопрос по Windows Forms. На форме есть много комбобоксов, текстбоксов и кнопок. После выполнения определенной функции...

Нужен элемент управления со сворачиваемым списком, похожий на панель элементов управления в VS
Нужен элемент управления со сворачиваемым списком, как панель элементов в VS, желательно с возможностью установки чекбокса есть набор...

8
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
06.08.2017, 06:53
Если на каждой вкладке должен быть одинаковый набор контролов и различаться только текстом, то есть смысл вынести этот набор в отдельный UserControl
0
0 / 0 / 1
Регистрация: 08.12.2011
Сообщений: 44
15.08.2017, 15:17  [ТС]
там разное количество контролов
я не могу понять почему он не растягивается на все окно
0
 Аватар для Павлик Морозов
138 / 137 / 42
Регистрация: 26.10.2012
Сообщений: 443
16.08.2017, 14:08
Nasty zzz, при помещении контрола на вкладку, Вам надо указывать ему текущий размер в свойстве Size, а так же менять привязку к границам контейнера в свойстве Anchor. Тогда ваш элемент управления примет нужный размер, а так же будет автоматически менять свой размер, при изменении размеров формы.
0
0 / 0 / 1
Регистрация: 08.12.2011
Сообщений: 44
06.09.2017, 10:44  [ТС]
Я задал нужный мне размер но Anchor
C#
1
2
3
this.tLP[i].Anchor = ((AnchorStyles)((((AnchorStyles.Top | AnchorStyles.Bottom)
                | AnchorStyles.Left)
                | AnchorStyles.Right)));
не срабатывает Контролы остаются тем же размером
0
 Аватар для Павлик Морозов
138 / 137 / 42
Регистрация: 26.10.2012
Сообщений: 443
07.09.2017, 00:27
Nasty zzz, и не будет работать. Если верить вашему коду, то у вас задается параллельно свойство Dock. Данное свойство взаимоисключающее с Anchor. Так что убираете Dock и будет работать Anchor
0
0 / 0 / 1
Регистрация: 08.12.2011
Сообщений: 44
08.09.2017, 09:34  [ТС]
Anchor до сих пор не работает надлежащим оброзом
Миниатюры
Динамическая прорисовка элементов управления  
0
 Аватар для Павлик Морозов
138 / 137 / 42
Регистрация: 26.10.2012
Сообщений: 443
08.09.2017, 15:15
Nasty zzz, это что за штука с рамочкой в которой 2+2 написано? Покажите полный код создания этого компонента. Но на TableLayoutPanel не особо похоже...
0
0 / 0 / 1
Регистрация: 08.12.2011
Сообщений: 44
22.09.2017, 15:03  [ТС]
Это обычный текст бокс

Добавлено через 17 минут
TableLayoutPanel помещены TextBox и CheckListBox

Добавлено через 5 часов 39 минут
ни как не хочет работать анчор при ручном добавление элементов в tabControl

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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
        TextBox[] tB = new TextBox[100];//Массив из 100 текстбоксов
        Label[] lb = new Label[100];    //Массив подписей к полям
        TabPage[] tP = new TabPage[100];
        TableLayoutPanel[] tLP = new TableLayoutPanel[100];
        CheckedListBox[] cLB = new CheckedListBox[100];
        ArrayList myAL = new ArrayList();
 
       
 
        //
        private void loadDate(int numtest)
        {
 
            
 
            this.tP[1] = new System.Windows.Forms.TabPage();
            this.tP[2] = new System.Windows.Forms.TabPage();
            this.tLP[1] = new System.Windows.Forms.TableLayoutPanel();
            this.cLB[1] = new System.Windows.Forms.CheckedListBox();
            this.tB[1] = new System.Windows.Forms.TextBox();
            
            this.tP[1].SuspendLayout();
            this.tLP[1].SuspendLayout();
            this.SuspendLayout();
 
            this.tabControl1.Controls.Add(this.tP[1]);
            this.tabControl1.Controls.Add(this.tP[2]);
 
            // 
            // tabPage
            // 
            this.tP[1].Controls.Add(this.tLP[1]);
            this.tP[1].Location = new System.Drawing.Point(4, 22);
            this.tP[1].Name = "tabPage1";
            this.tP[1].Padding = new System.Windows.Forms.Padding(3);
            this.tP[1].Size = new System.Drawing.Size(665, 408);
            this.tP[1].TabIndex = 0;
            this.tP[1].Text = "tabPage1";
            this.tP[1].UseVisualStyleBackColor = true;
            // 
            // tabPage2
            // 
            this.tP[2].Location = new System.Drawing.Point(4, 22);
            this.tP[2].Name = "tabPage2";
            this.tP[2].Padding = new System.Windows.Forms.Padding(3);
            this.tP[2].Size = new System.Drawing.Size(665, 408);
            this.tP[2].TabIndex = 1;
            this.tP[2].Text = "tabPage2";
            this.tP[2].UseVisualStyleBackColor = true;
            // 
            // tableLayoutPanel1
            // 
            this.tLP[1].Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top 
            | System.Windows.Forms.AnchorStyles.Bottom)
            | System.Windows.Forms.AnchorStyles.Left)
            | System.Windows.Forms.AnchorStyles.Right)));
            this.tLP[1].CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.Single;
            this.tLP[1].ColumnCount = 1;
            this.tLP[1].ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
            this.tLP[1].Controls.Add(this.cLB[1], 0, 1);
            this.tLP[1].Controls.Add(this.tB[1], 0, 0);
            this.tLP[1].Location = new System.Drawing.Point(6, 6);
            this.tLP[1].Name = "tableLayoutPanel1";
            this.tLP[1].RowCount = 2;
            this.tLP[1].RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 44.44444F));
            this.tLP[1].RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 55.55556F));
            this.tLP[1].Size = new System.Drawing.Size(653, 399);
            this.tLP[1].TabIndex = 0;
            // 
            // checkedListBox1
            // 
            this.cLB[1].Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top 
            | System.Windows.Forms.AnchorStyles.Bottom)
            | System.Windows.Forms.AnchorStyles.Left)
            | System.Windows.Forms.AnchorStyles.Right)));
            this.cLB[1].Location = new System.Drawing.Point(4, 180);
            this.cLB[1].Name = "checkedListBox1";
            this.cLB[1].Size = new System.Drawing.Size(645, 214);
            this.cLB[1].TabIndex = 0;
            // 
            // textBox1
            // 
            this.tB[1].Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top 
            | System.Windows.Forms.AnchorStyles.Bottom)
            | System.Windows.Forms.AnchorStyles.Left)
            | System.Windows.Forms.AnchorStyles.Right)));
            this.tB[1].Location = new System.Drawing.Point(4, 4);
            this.tB[1].Multiline = true;
            this.tB[1].Name = "textBox1";
            this.tB[1].Size = new System.Drawing.Size(645, 169);
            this.tB[1].TabIndex = 1;
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.09.2017, 15:03
Помогаю со студенческими работами здесь

Прорисовка элементов в Windows Forms
Как сделать прорисовку кнопок ( закрыть, свернуть, развернуть ) ?? И прочее!

Динамическая генерация элементов управления
Всем привет! Делал когда-то такое. К примеру кнопки. Пишешь в цикле что-то типа: Button b = new Button(); b.Text = i; Дальше, по...

Динамическая прорисовка рамки
Суть задания в том чтобы при вводе символов с клавиатуры они выводились в консоль в цельной рамке. Проблема возникла переходе по строкам...

Динамическая индикация на примере управления светодиодной матрицей 4x
нашел данную статью - http://microsin.net/programming/avr/led-matrix-dynamic-indication.html очень за интересовала, как данную вещь...

Прорисовка элементов в ListView
Доброго дня. Необходимо сделать свой список с своим View, нашёл статью и сделал как в ней. Но поведение CheckBox'ов оказалось поломанное....


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru