Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
 Аватар для салома
21 / 19 / 5
Регистрация: 08.09.2011
Сообщений: 370

Странно работает функция с другой формы

20.05.2020, 17:10. Показов 1250. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Снова здравствуйте.
Есть Форма 1 и Форма 2
На первой форме кнопка, открывающая форму 2 и функция которая добавляет кнопки на панель
C#
1
2
Form3 frm3 = new Form3();
form3.show();
C#
1
2
3
4
Button Button98 = new Button();
            Button98.Name = name2;            
            Button98.Text = text2;           
            GroupBox99.Controls.Add(Button98);
если запустить функцию с 1 формы, то все работает
если запустить функцию с 2 формы, то функция отрабатывает, но ничего на панель не появляется

подскажи те пжл.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.05.2020, 17:10
Ответы с готовыми решениями:

Заданная функция работает странно
Доброго времени суток. Нужно построить спектр фаз. Задаю функцию PhC(n) (см. рис). В первой же строке пишу, что при нулевых значениях...

ООП: странно работает автоматическая функция
Работающий код: class Configs { public function __construct() { define('CONFIG_INCLUDE', true); ...

Функция cin.get(array, 80) работает в одной программе, но не работает в другой
Добрый день. Я что то совсем запутался, одна и та же функция в одной программе работает, а в другой нет. В этой программе...

13
9 / 7 / 2
Регистрация: 29.05.2019
Сообщений: 478
20.05.2020, 17:42
Вы пытаетесь нажав на кнопку 2 формы сделать кнопки в 1 ?
0
 Аватар для салома
21 / 19 / 5
Регистрация: 08.09.2011
Сообщений: 370
20.05.2020, 17:48  [ТС]
Цитата Сообщение от bnana Посмотреть сообщение
Вы пытаетесь нажав на кнопку 2 формы сделать кнопки в 1 ?
все верно
0
9 / 7 / 2
Регистрация: 29.05.2019
Сообщений: 478
20.05.2020, 17:51
Ну тогда конечно у вас ничего не выйдет, вам нужно читать про работу с 2 формами. Если я вас правильно понял...

Вроде это Работа с двумя формами.
0
 Аватар для салома
21 / 19 / 5
Регистрация: 08.09.2011
Сообщений: 370
20.05.2020, 18:04  [ТС]
Цитата Сообщение от bnana Посмотреть сообщение
Вроде это Работа с двумя формами.
это все не то совсем. Сама функция запускается с 1 формы, просто почему то не отображаются элементы
над как то сказать 1 форме, что бы она как бы от себя добавляла
0
 Аватар для салома
21 / 19 / 5
Регистрация: 08.09.2011
Сообщений: 370
21.05.2020, 21:38  [ТС]
Господа, я уже все перепробовал, направьте на путь
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
22.05.2020, 02:48
Цитата Сообщение от салома Посмотреть сообщение
Господа, я уже все перепробовал, направьте на путь
Кода больше покажи (или проект выложи). Непонятно: откуда, что и как ты запускаешь.
0
 Аватар для салома
21 / 19 / 5
Регистрация: 08.09.2011
Сообщений: 370
22.05.2020, 10:43  [ТС]
Цитата Сообщение от nd2 Посмотреть сообщение
Кода больше покажи (или проект выложи). Непонятно: откуда, что и как ты запускаешь.
да все просто
на форме один :
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
 private void Button20_Click(object sender, EventArgs e)
        {
             Form2 frm2 = new Form2();
            frm2.Show();        
 
        }
public void add() //функция которая добавляет групбокс и кнопку на панель на форме один
        {            
            
            GroupBox GroupBox99 = new GroupBox();
            GroupBox99.Name = name;
            GroupBox99.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(38)))), ((int)(((byte)(40)))), ((int)(((byte)(47)))));
            //  GroupBox1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(62)))), ((int)(((byte)(120)))), ((int)(((byte)(138)))));
            GroupBox99.Width = 609;
            GroupBox99.Height = 59;
            GroupBox99.Location = new Point(9, loc);                   
            panel.Controls.Add(GroupBox99);
 
            Button Button99 = new Button();
            Button99.Name = name2;            
            Button99.Width = 231;
            Button99.Height = 32;
            Button99.Location = new Point(23, 18);            
            GroupBox99.Controls.Add(Button99);
   }
на второй форме
C#
1
2
3
4
5
6
7
8
9
10
11
12
private void Button20_Click(object sender, EventArgs e)
        {
               Form1 frm1 = new Form1;           
 
            copy.Text = textBox1.Text;
            copy.Text2 = textBox2.Text;
 
            frm1.add(); //запуск функции на 1 форме 
                              //перепробовал все примеры, которые ток нашел, ничего не работает 
                          
 
        }
что получаем в итоге, функция запускается и работает(проверил через messagebox)
Но элементы на форме 1 не появляются
При запуске функции с 1 формы, все оке
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
22.05.2020, 11:04
Цитата Сообщение от салома Посмотреть сообщение
да все просто
В main() какую форму запускаешь?

Добавлено через 13 минут
Предположу, что первую. Так вот этот объект первой формы не имеет никакого отношения к той форме, которая в main() запускается:
Цитата Сообщение от салома Посмотреть сообщение
C#
1
2
3
private void Button20_Click(object sender, EventArgs e)
        {
               Form1 frm1 = new Form1;
0
 Аватар для салома
21 / 19 / 5
Регистрация: 08.09.2011
Сообщений: 370
22.05.2020, 11:06  [ТС]
Цитата Сообщение от nd2 Посмотреть сообщение
В main() какую форму запускаешь?
все верно, первую форму
Как это поправить? как дать ссылку на 1 форму?:
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
22.05.2020, 11:15
Лучший ответ Сообщение было отмечено салома как решение

Решение

Сделай во второй форме поле первой формы, и конструктор, в который передаётся первая форма, для инициализации этого поля. Потом, через это поле, будешь вызывать функции первой формы.
Пример:
Вторая форма:
C#
1
2
3
4
5
6
7
private Form1 f1;
public Form2(Form1 f)
        {
            InitializeComponent();
            f1 = f;
            
        }
В первой форме:
C#
1
Form2 form2 = new Form2(this);
Во второй форме:
C#
1
f1.add();
1
 Аватар для салома
21 / 19 / 5
Регистрация: 08.09.2011
Сообщений: 370
22.05.2020, 11:31  [ТС]
nd2, Спасибо , это как раз то, что нужно
еще маленький вопросик, я инфы вообще по нему не нашел
как получить имя динамически созданного элемента, при клике по нему ?(например что бы его удалить через контекст меню)
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
22.05.2020, 11:59
Цитата Сообщение от салома Посмотреть сообщение
как получить имя динамически созданного элемента, при клике по нему ?
Задать для него обработчик клика, в обработчике привести тип объекта-отправителя события к типу элемента, получить имя элемента.
1
 Аватар для салома
21 / 19 / 5
Регистрация: 08.09.2011
Сообщений: 370
22.05.2020, 12:09  [ТС]
nd2, спасибо , работает
C#
1
GroupBox99.Click += new EventHandler(gclick);
C#
1
2
3
4
private void gclick(object sender, System.EventArgs e)
        {
            MessageBox.Show((sender as GroupBox).Name);
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.05.2020, 12:09
Помогаю со студенческими работами здесь

Не работает процедура с другой формы
Пытаюсь обратиться к процедуре с другой формы, но процедура не работает Процедура на Form1 public void PrintInTable(String...

Приложение работает в Debug, странно работает в Release и не работает при билде
Действия выполняются на эмуляторе Pixel 2. Android 9.0. Если я запускаю приложение с конфигурацией Debug, то всё в порядке. При запуске же...

Не работает функция при переносе на другой ПК
перестала работать функцыя при переносе файла на другой ПК (версии офиса одинаковые) функция либо виводит пустутю ячейку, либо повторяет...

Как перенести значения из одного компонента одной формы в другой компонент другой формы?
В общем ситуация смешная для профи,делаю программу для редактирования и печати вкладышей для дипломов на PHP,сделал две формы,нужнго...

Функция класса не работает в классе формы
Пытаюсь описать функцию для подсчёта суммы чисел. using System; using System.Collections.Generic; using System.ComponentModel; ...


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

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