|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,898
|
|
.NET 4.x Обращаться к форме и ее компонентам из другого класса09.09.2017, 07:22. Показов 1446. Ответов 8
Метки нет (Все метки)
Здравствуйте.
Как можно обращаться к форме и ее компонентам из другого класа или есть другой способ уменьшения кода в классе форме?
0
|
|
| 09.09.2017, 07:22 | |
|
Ответы с готовыми решениями:
8
Не изменяется текст метки в главной форме из другого класса Подскажите, как правильно обращаться к фунциям-членам другого класса |
|
Администратор
|
|
| 09.09.2017, 07:45 | |
|
Alexandr_7, к форме можно обращаться также как и к другим классам - путем передачи экземпляра формы. Дополнительно можно использовать коллекцию Application.OpenForms. Варианты обращения к элементам формы рассмотрены в ответе на вопрос №2 в теме Ответы на 7 самых частых вопросов по WinForms. Что касается уменьшения объема кода, то обычные ООП практики в помощь. Код который относится к самой форме можно разделить на части с помошью partial классов.
Заодно рекомендую внимательно прочитать тему Архитектура ПО в WinForms (FAQ & HowTo)
0
|
|
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,898
|
|||||||||||
| 10.09.2017, 09:40 [ТС] | |||||||||||
|
Вот код:
Толи оставлять это в классе формы толи выносить в отдельный класс FileManager в который я уже вынес 3 метода 3 для создания резевной копии остальные 2 для запуска и выполнения команд командной строки Добавлено через 8 минут И да. Не надо писать на счет то что первые четыре метода неправильно оформил. Я их упростил. Когда первый раз писал както не подумал.
0
|
|||||||||||
|
|
||
| 10.09.2017, 12:28 | ||
|
А форма-это отображение, она просто отображает результаты работы ваших классов.
1
|
||
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,898
|
|||||||||||
| 11.09.2017, 08:21 [ТС] | |||||||||||
|
Пока что в классе у меня вынесены 3 метода
Добавлено через 23 минуты Хотя есть нарушение с ооп а именно вот это
1 Вводить для этого отдельную переменную не вариант 2 Если использовать 2 раза return тоесть сначало вернуть false потом true но это не правильно да и ничего с таким не получится так как при вызове return завершается метод Как сделать правильно. На счет с помощью делегатов то сразу говорю может пример дадите ибо примеры от макрасофт msdn както я не разобрался по ним Добавлено через 18 часов 44 минуты Пожалуйста помогите мне. Как правильно сделать из другого класса присвоить элементам кое какие параметры. В примере тот что выше нужно форму сделать неактивной на время выполнения комманд. Также еще выше примеры то там нужно изменять свойство Checked у CheckBox
0
|
|||||||||||
|
360 / 287 / 76
Регистрация: 21.06.2016
Сообщений: 1,115
|
|||||||
| 11.09.2017, 09:25 | |||||||
|
Давайте так рассуждать. Если не понимаете что такое делегаты/события - то, простите, что Вы в формах забыли? Ведь каждый обработчик (клавиши, клики, мышки) - это реакция (грубо говоря запуск метода) программы на СОБЫТИЕ. Как минимум нужно понять что такое событие, как оно вызывается, как на него подписываться/отписываться, передавать параметры. И это всё нужно знать до того, как садиться писать приложение в формах (ну и с развитием технологий и WPF и далее).
Если код в отдельном классе выполняется долго - можно завернуть метод отдельного класса в таску, и запускать его асинхронно, чтобы UI не "висел" в процессе работы другого кода.
1
|
|||||||
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,898
|
||
| 11.09.2017, 09:56 [ТС] | ||
|
0
|
||
|
360 / 287 / 76
Регистрация: 21.06.2016
Сообщений: 1,115
|
|
| 11.09.2017, 10:30 | |
|
Нужно на логику процесса смотреть, по коду - это то, что Вы написали, а может это не соответствовать тому, что хотелось. Ну это ладно.
Из всего метода - оставляйте только enable/disable для формы, а остальную часть уводите в какой-то хелпер/отдельный класс. Но вполне может оказаться, что как раз не нужно делать disable, и форма сама заморозиться, ведь работать будет в синхронном режиме. Поэтому для начала - понять бизнес логику приложения - потом раздавать советы по красоте кода. Вариант кое-что кое-где натолкнет только на ответ кое-как.
0
|
|
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,898
|
|
| 11.09.2017, 19:01 [ТС] | |
|
Она та замарозиться . Но вот при попытке чтото сделать появится надпись программа не отвичает пока не закончит компилировать а потом выполнит то что ты там сделал но нужно именно блокировать упровление прогой пока не завершиться компиляция + менять курсор у проги на соответсвующий для выполнения чего либо
0
|
|
| 11.09.2017, 19:01 | |
|
Помогаю со студенческими работами здесь
9
Как обращаться к компонентам Shape в цикле? Как в Android Studio обращаться к компонентам (кнопкам, полям, и т.д.)? Доступ к форме из другого класса Обращение к форме из другого класса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
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
Использованы. . .
|