Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
 Аватар для belalugoci
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676

Обращение к элементам формы (объектам на форме) из void Proc()

25.12.2018, 05:46. Показов 1763. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ответы на 7 самых частых вопросов по WinForms
прочитал, но так и не понял как это делать. я о том что вот написано:
2.6 Используем отдельный класс
Создаем отдельный класс, лучше статический, в основном namespace, т.е. например в файле Program.cs
C#
1
2
3
4
static class Data
{
    public static string Value { get; set; }
}
мне такое делать для каждого элемента формы и для каждого свойства что я изменяю? Мне это видится лютым извращением. И в примере я не вижу как явно определено что Value относится например к label1 или button1.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.12.2018, 05:46
Ответы с готовыми решениями:

Обращение к динамически созданным на форме объектам
Добрый день. Я динамически создаю по нажатию кнопки на форме разные элементы: comboBox, textBox, label. Создаю вот так: var cb1 = new...

Обращение к объектам главной формы с дочерней
2 формы на главной PictureBox при клике на нём вызывается 2 форма { equipment equip = new equipment(); ...

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

25
Эксперт .NET
 Аватар для Rius
13399 / 7853 / 1700
Регистрация: 25.05.2015
Сообщений: 23,868
Записей в блоге: 14
28.12.2018, 11:17
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от belalugoci Посмотреть сообщение
Как я и говорил ранее - я делаю что-то только тогда, когда возникает необходимость.
А мы предвидим будущие необходимости и проблемы, поэтому думаем заранее. Да, другой подход.

Цитата Сообщение от belalugoci Посмотреть сообщение
А в случае с закрытием основной программы нужно покурить про CancellationToken чтобы правильно дождаться завершения потока?
Это не поможет.
Зачем дожидаться вообще потребовалось?
0
 Аватар для belalugoci
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676
28.12.2018, 11:29  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
А мы предвидим будущие необходимости и проблемы, поэтому думаем заранее
я программирую с 1989 года и за 29 лет у меня впервые появилась необходимость (именно необходимость) решить задачу в несколько потоков. А за бортом остается еще с тысячу возможностей, которые не понадобятся никогда, зачем их использовать именно сейчас. Я вообще что когда-то учил и знал сегодня не могу применить, так как это уже нигде не используют. Так какой смысл всё-всё-всё изучать до момента когда это потребуется?

Цитата Сообщение от Rius Посмотреть сообщение
Зачем дожидаться вообще потребовалось?
сейчас при закрытии программы вылезает логичная ошибка:
System.ComponentModel.InvalidAsynchronousStateException: "При вызове данного метода произошла ошибка. Поток-получатель больше не существует."
Значит я что-то сделал не так, сейчас у меня поток останавливается так:
C#
1
2
3
4
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            thread_stop = true;
        }
может запустить while который будет крутиться пока объект с потоком существует?
0
Эксперт .NET
 Аватар для Rius
13399 / 7853 / 1700
Регистрация: 25.05.2015
Сообщений: 23,868
Записей в блоге: 14
28.12.2018, 11:38
Цитата Сообщение от belalugoci Посмотреть сообщение
Так какой смысл всё-всё-всё изучать до момента когда это потребуется?
Но ведь потребовалось? Потребовалось, это факт. И это было предсказуемо.
IMHO лучше сразу научиться правильно, чем вытворять костыли для неправильной реализации того же самого. Не каких-то там абстрактных возможностей, которые никогда не понадобятся, а того, что вы уже делаете.

Попробуйте код отсюда: Обращение к элементам формы из завершающегося потока
0
 Аватар для belalugoci
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676
28.12.2018, 12:03  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
IMHO лучше сразу научиться правильно
я и так учу как правильно, вы путаете две разных программы. одну я уже сделал, всё посчитал и забыл. это совсем другая программа, я её изначально думал как многозадачную.

Цитата Сообщение от Rius Посмотреть сообщение
Но ведь потребовалось? Потребовалось, это факт. И это было предсказуемо.
Я изучал ассемблер для КР580, Z80, NEC v40 (который XT), i286/i386, FoxPro, Clipper - осталось понять - зачем? Из всего пригодился только Clipper, на котором я сдавал лабы. Остальное лишь разминка для мозга.
Когда твоя работа 24/7 программировать на C#, то ваш метод безусловно единственно верный, а когда это просто инструмент для решения некоторых задач - вот и надо смотреть на задачу и подбирать решение.

Через месяц я уже не буду ничего считать и забуду всё, о чем мы говорим, а еще через год, когда понадобится еще что-то сделать, я зайду в свои темы и буду читать, смотреть листинги своих программ, копи-пастить и решать задачу.

Спасибо за ответы, С наступающим!

Добавлено через 1 минуту
Цитата Сообщение от Rius Посмотреть сообщение
Попробуйте код отсюда: Обращение к элементам формы из завершающегося потока
не уверен что смогу правильно переделать всё на Task.

Добавлено через 8 минут
Для формы нашел только FormClosing, в примере OnClose, которого я в VS не найду никак.
0
Эксперт .NET
 Аватар для Rius
13399 / 7853 / 1700
Регистрация: 25.05.2015
Сообщений: 23,868
Записей в блоге: 14
28.12.2018, 13:19
Цитата Сообщение от belalugoci Посмотреть сообщение
Для формы нашел только FormClosing, в примере OnClose, которого я в VS не найду никак.
Название метода-обработчика не обязано совпадать с названием события, к которому обработчик подключён.
Совпадают они более-менее тогда, когда генерируются студией автоматически, по двойному клику мыши или в редакторе автодополнением.

С наступающим.
0
 Аватар для belalugoci
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676
29.12.2018, 04:39  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
Название метода-обработчика не обязано совпадать с названием события, к которому обработчик подключён.
это я знаю, но прямо в тексте нет информации о том, что это придуманное или сгенерированное название, а во втором случае и метод может работать иначе.
в общем пока вопрос открыт.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.12.2018, 04:39

Обращение из родительской формы к элементам второй формы
Помогите пожалуйста, надо динамически вывести dataGridView с таблицами данных из БД на дочернюю форму, вызывая ее из родительской формы....

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

Обращение к элементам формы из класса
Как из класса test.cs присвоить значение textbox1 из формы Form1?

Обращение из класса к элементам формы
Добрый вечер, подскажите пожалуйста, как из класса обратиться к элементам формы(image, label и т.д.)

Обращение к одинотипным элементам формы
Есть массив значений (в настоящее время их 6, но может быть больше), каждое из которых можно задавать вручную на форме ползунками trackbar....


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

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
SUNO Ai - Река Без Дна
zorxor 31.07.2026
Автор стихотворения - астрофизик Марина Катыс Ссылка на сгенерированную музыкальную композицию: https:/ / suno. com/ song/ 6f6e5464-b290-4650-be6c-44c85f8d8013 Я говорю, что Время- как вода течет. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru