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

Вызов метода из экземпляра другой формы

18.10.2014, 01:46. Показов 3769. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Выручайте. Начал разбираться с c#. Проект расположен на двух формах. На первой форме при нажатии кнопки должна срабатывать процедура, которая находится на форме второй. процедуре выставил public. Вот код кнопки на первой форме.

C#
1
2
Form2 f = new Form2();
f.Stop();
Но процедура не срабатывает. Как я понял не работает потому что создаю новый объект. Как можно решить эту проблему? Выделать в класс отдельный эту процедуру не получится так как в той процедуре есть таймер, который находится на форме 2 и всё равно придётся к той форме обращаться.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.10.2014, 01:46
Ответы с готовыми решениями:

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

Вызов метода формы из другой формы
Иногда у разработчика возникает необходимость вызывать какой-либо метод, определенный в форме из другой формы. Начинающих типа меня такая...

Скрытие\Раскрытие формы за счет метода Hide() без создания нового экземпляра формы
Здраствуйте. Как мне скрыть форму и потом раскрыть ее из другой формы. Мне не нужно создавать каждый раз новую форму. Мне нужно раскрыть ту...

9
 Аватар для Metall_Version
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
18.10.2014, 12:10
Цитата Сообщение от KrIvEdKA Посмотреть сообщение
На первой форме при нажатии кнопки должна срабатывать процедура, которая находится на форме второй.
в этот момент вторая форма уже создана?
тогда нужно получить экземпляр второй формы , и ему прописать "стоп"
0
4 / 4 / 1
Регистрация: 10.03.2013
Сообщений: 43
18.10.2014, 13:17  [ТС]
Metall_Version, форма до этого уже была вызвана.

C#
1
2
3
4
            
Form2 f = new Form2();
f.Owner = this;
f.Show();
Там на первой форме кнопка открытия второй в которой код выше. И вторая кнопка которая запускает процедуру Stop(). Код этой кнопки в первом посте. Но при нажатии не срабатывает процедура Stop().
0
 Аватар для Metall_Version
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
18.10.2014, 13:24
потомучто
Цитата Сообщение от KrIvEdKA Посмотреть сообщение
Как я понял не работает потому что создаю новый объект.
а нужно
Цитата Сообщение от Metall_Version Посмотреть сообщение
тогда нужно получить экземпляр второй формы , и ему прописать "стоп"
0
4 / 4 / 1
Регистрация: 10.03.2013
Сообщений: 43
18.10.2014, 13:47  [ТС]
Metall_Version, я написал
C#
1
public Form2 f2;
а в процедуре
C#
1
f2.Stop();
Пишет ошибку "Ссылка на объект не указывает на экземпляр объекта."
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
18.10.2014, 14:03
Цитата Сообщение от KrIvEdKA Посмотреть сообщение
процедуре выставил public
Это чуть хуже чем совсем нехорошо.
Цитата Сообщение от KrIvEdKA Посмотреть сообщение
Как можно решить эту проблему?
События, к примеру...
0
 Аватар для Metall_Version
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
18.10.2014, 14:06
выложите весь проект покажу ,так сложно чтото показать
0
4 / 4 / 1
Регистрация: 10.03.2013
Сообщений: 43
18.10.2014, 14:22  [ТС]
insite2012, а можно кратко описать решение проблемы или же ссылкой ткнуть.

Metall_Version, Вот
Вложения
Тип файла: 7z WindowsFormsApplication6.7z (29.6 Кб, 3 просмотров)
0
 Аватар для Metall_Version
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
18.10.2014, 14:57
Лучший ответ Сообщение было отмечено KrIvEdKA как решение

Решение

KrIvEdKA,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public partial class Form1 : Form
    {
        private Form2 f2 ;
        public Form1()
        {
            InitializeComponent();
            f2 = new Form2();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            f2.Show();
        }
        private void button2_Click(object sender, EventArgs e)
        {
            f2.Stop();
        }
    }
по простому вот так. без событий
1
4 / 4 / 1
Регистрация: 10.03.2013
Сообщений: 43
18.10.2014, 16:24  [ТС]
Metall_Version, огромное спасибо) сработало)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.10.2014, 16:24
Помогаю со студенческими работами здесь

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

Вызов метода из другой формы
Доброго времени суток! Волею судеб пришлось осваивать VC++ 2008. Столкнулся с такой проблемой: Есть класс Form1 В нем объявлен...

Вызов метода без создания экземпляра типа
Доброго времени суток, ув. форумчане! У меня вот такая ситуация public partial class Form1 : Form // есть класс Form { ...

Вызов метода класса без создания экземпляра класса.
В общем мне для функционирования одной программы нужно постоянно вызывать метод одного из классов. Я это делаю с помощью new - delete. Мне...

Передача имени формы в процедуру и в процедуре вызов метода объекта формы
Есть несколько форм: FrmMain, Frm2, Frm3. На каждой форме есть RichEdit под именем RchEdtLog. Нужна процедура Log которая должна...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Загрузка 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