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

Как управлять динамическим элементом в другом методе?

14.01.2019, 14:44. Показов 557. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! У меня есть проблемка.. Я создал метот ComSettingsPage(), и там динамически нарисовал элементы.


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
private void ComSettingsPage()
        {
            Controls.Clear();
            //Кнопка: До дому
 
            Button HomeButton = new Button();
            int HomeButtonX = this.Width - 110;
            int HomeButtonY = this.Height - 110;
            HomeButton.Size = new Size(95, 100);
            HomeButton.Location = new Point(HomeButtonX, HomeButtonY);
            HomeButton.Text = "Головна сторінка";
            this.Controls.Add(HomeButton);
            HomeButton.Click += new EventHandler(this.HomeButton_Click);
 
            //Кнопка: назад
            Button BackToSettings = new Button();
            int BackToSettingsX = this.Width - 210;
            int BackToSettingsY = HomeButtonY;
            BackToSettings.Size = new Size(95, 100);
            BackToSettings.Location = new Point(BackToSettingsX, BackToSettingsY);
            BackToSettings.Text = "Назад";
            this.Controls.Add(BackToSettings);
            BackToSettings.Click += new EventHandler(this.BackToSettings_Click);
 
            //Combobox
 
            ComboBox ComBox = new ComboBox();
            int ComBoxX = this.Width / 2 - 200;
            int ComBoxY = this.Height / 2 - 25;
            ComBox.Size = new Size(400, 50);
            ComBox.Location = new Point(ComBoxX, ComBoxY);
            this.Controls.Add(ComBox);
 
            //Button: Search avaible ports
 
            Button SearchAvaiblePortsButton = new Button();
            int SearchAvaiblePortsButtonX = ComBoxX + ComBox.Width + 10;
            int SearchAvaiblePortsButtonY = ComBoxY;
            SearchAvaiblePortsButton.Size = new Size(50, 25);
            SearchAvaiblePortsButton.Location = new Point(SearchAvaiblePortsButtonX, SearchAvaiblePortsButtonY);
            SearchAvaiblePortsButton.Text = "Пошук доступних портів";
            Controls.Add(SearchAvaiblePortsButton);
            SearchAvaiblePortsButton.Click += new EventHandler(this.SearchAvaiblePortsButton_Click);
 
 
 
 
            //Button Connect
 
            Button ConnectComButton = new Button();
            int ConnectComButtonX = SearchAvaiblePortsButtonX + SearchAvaiblePortsButton.Width + 10;
            int ConnectComButtonY = SearchAvaiblePortsButtonY;
            ConnectComButton.Size = new Size(100, 25);
            ConnectComButton.Location = new Point(ConnectComButtonX, ConnectComButtonY);
            ConnectComButton.Text = "Підключити";
            this.Controls.Add(ConnectComButton);
            ConnectComButton.Click += new EventHandler(this.ConnectComButton_Click);
 
        }
 
        private void ConnectComButton_Click(object sender, EventArgs e)
        {
            if (!serialPort.IsOpen)
            {
                serialPort.PortName = ((string)ComBox.SelectedItem);
                connectButton.Text = "Відключення";
                serialPort.Open();
            }
            else
            {
                connectButton.Text = "Підключити";
                serialPort.Close();
            }
            
        }
 
        private void SearchAvaiblePortsButton_Click(object sender, EventArgs e)
        {
            foreach (string portName in SerialPort.GetPortNames())
            {
                ComBox.Items.Add(portName);
            }
 
           ComBox.SelectedIndex = 0;
            
        }
        private void BackToSettings_Click(object sender, EventArgs e)
        {
            SettingsPage();
        }
Метот click не опозает созданые элементы ране.. Пробовал перед button дописать public, но тогда кнопка вообще не создается..
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.01.2019, 14:44
Ответы с готовыми решениями:

Как управлять ноутом в другом доме?
Здравствуйте. Извините за возможно нубский вопрос. У меня задача такая. Есть две квартиры в разных домах: ...

Как использовать переменную в другом методе?
Допустим, есть у меня такой код: public class Test{ public static String result(){ int a = 5; ...

Как получить ссылку на созданный экземпляр окна в другом методе?
Всем добра! создаю экземпляр окна: var logWindow = new LogWindow(); logWindow.Show(); как получить ссылку на созданный экземпляр...

1
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18263 / 14188 / 5366
Регистрация: 17.03.2014
Сообщений: 28,874
Записей в блоге: 1
14.01.2019, 15:29
Ярик Вадила, самый простой способ в данном случае это использовать аргумент sender через который передается источник события.
C#
1
2
3
4
        private void ConnectComButton_Click(object sender, EventArgs e)
        {
            var connectButton = (Button)sender;
            ...
Также можно было создать поле типа Button по аналогии с тем как делает дизайнер VS. Или присвоить имя элементу управления и использовать индексатор коллекции Controls.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.01.2019, 15:29
Помогаю со студенческими работами здесь

Как правильно присвоить переменным данные для использования с другом методе?
Привет всем! Есть такая проблема... есть push уведомления, и когда приходит уведомление их нужно добавить в массив для показа в...

Как при вкл флажка изменить значение переменной, использующейся в другом методе
Задумка такая. Есть элемент checkBox. Хочу чтоб при включении флажка, изменялось значение переменной. И чтоб эту переменная менялась уже...

Как сделать так что бы переменные из одного метода были видны в другом методе?

Как из потока управлять формой, если функции потока находятся в другом классе?
Добрый вечер. Возник такой вопрос, никак не могу разобраться. Как из потока управлять формой, если функции потока находятся в другом...

Как вызвать метод класса в другом методе этого же класса?
<? class load_files{ public function traverse_hierarchy($path) { // from...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью 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
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru