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

Работа с компонентами

11.10.2019, 06:42. Показов 1755. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дело обстоит так:
Есть форма

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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace Business.Forms
{
    public partial class AddAgent : Form
    {
        public AddAgent()
        {
            InitializeComponent();
        }
        private void AddAgent_Load(object sender, EventArgs e)
        {
            Tools.CompanyDataGroupBox tools = new Tools.CompanyDataGroupBox(this);
            groupBox = tools.groupBox1();
            this.Controls.Add(groupBox);
        }
        public GroupBox groupBox; 
    }
}
и есть файл с классом
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Drawing;
 
namespace Business.Tools
{
    class CompanyDataGroupBox
    {
        public Forms.AddAgent parent = null;
        public CompanyDataGroupBox(Forms.AddAgent par)
        {
            this.parent = par;
        }
        int LabelWidth = 70;
        int LabelHeight = 20;
 
        int textBoxWidth = 130;
        int textBoxHeight = 20;
        int textBoxLocationX = 316;
        public GroupBox groupBox1()
        {
            GroupBox groupBox = new GroupBox();
            groupBox.Size = new Size(210, 274);
            groupBox.Text = " имстьть ти т";
            groupBox.Location = new Point(9, 8);
            groupBox.Controls.Add(panel());
            return groupBox;
        }
        public Panel panel()
        {
            Panel panel = new Panel();
            panel.Size = new Size(447, 36);
            panel.Dock = DockStyle.Fill;
            panel.BackColor = Color.Blue;
 
            panel.Controls.Add(label1());
            panel.Controls.Add(label2());
            panel.Controls.Add(label3());
            panel.Controls.Add(Label4());
            panel.Controls.Add(label5());
            panel.Controls.Add(label6());
            panel.Controls.Add(label7());
            panel.Controls.Add(comboBox1());
            panel.Controls.Add(textBox2());
            panel.Controls.Add(textBox3());
            return panel;
        }
        public Label label1()
        {
            Label label = new Label();
            label.Size = new Size(LabelWidth, LabelHeight);
            label.Location = new Point(2, 2);
            label.Anchor = AnchorStyles.Top | AnchorStyles.Left;
            label.TextAlign = ContentAlignment.MiddleRight;
            label.Text = "трпт:";
            label.BackColor = Color.Red;
            
            return label;
        }
        public Label label2()
        {
            Label label = new Label();
            label.Size = new Size(LabelWidth, LabelHeight);
            label.Location = new Point(2, 25);
            label.Anchor = AnchorStyles.Top | AnchorStyles.Left;
            label.TextAlign = ContentAlignment.MiddleRight;
            label.Text = "трпттрп:*";
            label.BackColor = Color.Red;
            return label;
        }
        public Label label3()
        {
            Label label = new Label();
            label.Size = new Size(LabelWidth, LabelHeight);
            label.Location = new Point(2, 48);
            label.Anchor = AnchorStyles.Top | AnchorStyles.Left;
            label.TextAlign = ContentAlignment.MiddleRight;
            label.Text = "трпт:*";
            label.BackColor = Color.Red;
            return label;
        }
        public Label Label4()
        {
            Label label = new Label();
            label.Size = new Size(LabelWidth, LabelHeight);
            label.Location = new Point(2, 71);
            label.Anchor = AnchorStyles.Top | AnchorStyles.Left;
            label.TextAlign = ContentAlignment.MiddleRight;
            label.Text = "трпт:";
            label.BackColor = Color.Red;
            return label;
        }
        public Label label5()
        {
            Label label = new Label();
            label.Size = new Size(LabelWidth, LabelHeight);
            label.Location = new Point(2, 94);
            label.Anchor = AnchorStyles.Top | AnchorStyles.Left;
            label.TextAlign = ContentAlignment.MiddleRight;
            label.Text = "трптпс:*";
            label.BackColor = Color.Red;
            return label;
        }
        public Label label6()
        {
            Label label = new Label();
            label.Size = new Size(LabelWidth, LabelHeight);
            label.Location = new Point(2, 117);
            label.Anchor = AnchorStyles.Top | AnchorStyles.Left;
            label.TextAlign = ContentAlignment.MiddleRight;
            label.Text = "трпвтп:";
            label.BackColor = Color.Red;
            return label;
        }
        public Label label7()
        {
            Label label = new Label();
            label.Size = new Size(LabelWidth, LabelHeight);
            label.Location = new Point(2, 140);
            label.Anchor = AnchorStyles.Top | AnchorStyles.Left;
            label.TextAlign = ContentAlignment.MiddleRight;
            label.Text = "трртрпт:";
            label.BackColor = Color.Red;
            return label;
        }
        public ComboBox comboBox1()
        {
            ComboBox comboBox = new ComboBox();
            comboBox.FormattingEnabled = true;
            
            comboBox.Text = "патвппаи";
            comboBox.Items.AddRange(new object[]
            {
                "тпатвпавт",
                "ттттрпвт"
            });
            comboBox.Location = new Point(textBoxLocationX, 1);
            comboBox.Size = new Size(textBoxWidth, textBoxHeight);
            comboBox.Anchor = AnchorStyles.Top | AnchorStyles.Right;
            comboBox.TabIndex = 0;
            comboBox.SelectedIndexChanged += ComboBox1_SelectedIndexChanged; ;
            return comboBox;
        }
        public TextBox textBox2()
        {
            TextBox textBox = new TextBox();
            textBox.TextAlign = HorizontalAlignment.Left;
            textBox.Size = new Size(textBoxWidth, textBoxHeight);
            textBox.Anchor = AnchorStyles.Top | AnchorStyles.Right;
            textBox.Location = new Point(textBoxLocationX, 25);
            textBox.TabIndex = 1;
            textBox.Visible = true;
            return textBox;
        }
        public TextBox textBox3()
        {
            TextBox textBox = new TextBox();
            textBox.Size = new Size(textBoxWidth, textBoxHeight);
            textBox.Anchor = AnchorStyles.Top | AnchorStyles.Right;
            textBox.Location = new Point(textBoxLocationX, 48);
            textBox.TabIndex = 2;
            textBox.Text = "12345678901234567890";
            return textBox;
        }
        public void ComboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            ЧТО СЮДА И НАПИСАТЬ???
 
            this.parent.groupBox.Visible = false;
        }
    }
}

В файле я создаю GroupBox на котором находятся Panel, Lable, TextBox и тд, с нужными мне параметрами.
Далее в форме я создаю объект Groupbox и он отображается в Форме со всем барахлом.

Внимание вопрос:

Мне нужно, что бы при работе ComboBox, textBox2 становился ReadOnly.

Как такое провернуть не могу понять.

Могу работать только полностью с groupBox типа отключить его совсем - this.parent.groupBox.Visible = false;
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.10.2019, 06:42
Ответы с готовыми решениями:

Работа с компонентами цвета
Здравствуйте! Нужно сделать фильтры для изображений. Использую матрицы, которые накладываются на изображение и получают новое значение...

Цикл for с компонентами
Доброго времени суток. У меня есть код и он отлично работает, но хотелось бы его уменьшить. Для этого нужен цикл по компонентам. Вот...

Создание списка с компонентами
Всем привет, решил написать программу и требуется создать список с ячейками в котором будет определённое количество их, их количество будет...

7
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
11.10.2019, 11:13
nivase,
C#
1
2
3
4
            foreach (Control СhildControls in this.groupBox1.Controls)
            {
                СhildControls.Enabled = false;
            }
0
0 / 0 / 0
Регистрация: 08.09.2019
Сообщений: 12
11.10.2019, 11:20  [ТС]
Спасибо конечно, но что мне с этим делать то??? Куда писать, как применять???
Я вам скажу, что пишу код не с рождения и очень многое для меня еще загадка, поэтому интересуюсь, но прошу конкретики и подробностей
0
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
11.10.2019, 12:35
nivase, очевидно, вставлять в то место, где должно применяться данное свойство.
в твоей же программе есть событие, в котором при выборе нового элемента ты хочешь ЧТО-ТО ДЕЛАТЬ. полагаю, хочешь менять свойства контролов на чтение. вот и меняй.
C#
1
2
3
4
5
6
7
8
        public void ComboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            /*ЧТО СЮДА И НАПИСАТЬ???*/
            foreach (Control СhildControls in this.groupBox1.Controls)
            {
                СhildControls.Enabled = false;
            }
        }
0
0 / 0 / 0
Регистрация: 08.09.2019
Сообщений: 12
11.10.2019, 16:20  [ТС]
Ок. Спасибо завтра же попробую применить для того что мне надо. Если будут вопросы, напишу
0
0 / 0 / 0
Регистрация: 08.09.2019
Сообщений: 12
12.10.2019, 01:45  [ТС]
Ок. Я попробовал, работает да не совсем так как мне нужно.
Уточню.
Мне нужно что бы только конкретный textBox становился readonly, а остальные также и оставались активными. А тут получается что умирают все компоненты ниже родителя.
0
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
12.10.2019, 12:02
nivase,
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
using System.Drawing;
using System.Windows.Forms;
 
namespace WindowsFormsApp13
{
    public partial class Form1 : Form
    {
        GroupBox groupBox1 = new GroupBox();
 
        TextBox textBox1 = new TextBox();
 
        TextBox textBox2 = new TextBox();
 
        public Form1()
        {
            InitializeComponent();
 
            AddMyGroupBox();
        }
        private void AddMyGroupBox()
        {
            textBox1.Location = new Point(10, 20);
            textBox1.Text = "12345678901234567890";
            textBox1.Size = new Size(130, 20);
            groupBox1.Controls.Add(textBox1);
 
            textBox2.Location = new Point(10, 45);
            textBox2.Text = "12345";
            textBox2.Size = new Size(130, 20);
            groupBox1.Controls.Add(textBox2);
 
            groupBox1.Text = "MyGroupBox";
 
            this.Controls.Add(groupBox1);
        }
        private void button1_Click(object sender, System.EventArgs e)
        {
            foreach (Control Child in this.groupBox1.Controls)
            {
                if (Child == textBox2)
                {
                    Child.Enabled = false;
                }
            }
        }
    }
}
0
0 / 0 / 0
Регистрация: 08.09.2019
Сообщений: 12
12.10.2019, 12:35  [ТС]
Спасибо. Я приблизительно до этого и дошел. Просто хотел каждый групбокс (а их будет не менее пяти подключаться), нарисовать и работать с каждым в отдельном файле, только подключать их в форму когда необходимо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.10.2019, 12:35
Помогаю со студенческими работами здесь

Прозрачная форма с компонентами
Приветствую всех! Столкнулся с проблемой не могу найти способ сделать форму прозрачной. Не вижу свойство transparent хотя возможно его...

Морской бой с визуальными компонентами
Доброго всем времени суток, уважаемые гуру программирования. Я начал переделать игру Морской бой с визуальными компонентами из...

Линии связей между компонентами
Доброго времени суток. Имею проблему, не могу не поделиться) Суть такова: ищу библиотеку (или исходники) для контрола, который будет...

Запуск приложения с компонентами DevExpress
Здравствуйте. У меня возникла такая проблема. Приложения с компонентами DevExpress (даже если это одна кнопка) не запускаются на...

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru