|
5 / 5 / 1
Регистрация: 05.11.2013
Сообщений: 58
|
|
Из вспомогательной формы модифицировать Label на основной15.01.2014, 16:18. Показов 829. Ответов 5
Метки нет (Все метки)
Коллеги,
подскажите пожалуйста (а то путаница в голове) как реализуется right-way вроде бы простая связка: 2 класса, класс формы и вспомогательный. Надо из вспомогательного модифицировать label на форме. Где объявлять событие, и где на него подписываться? Ход мыслей: - во вспомогательном что-то происходит, генерируется событие (соответственно, объявляем его во вспомогательном) - класс формы узнает о нем (значит, подписываемся в классе формы) и должен присвоить label.Content то, что вспомогательный класс передал. Лямбда у нас будет во вспомогательном классе или в классе формы? По идее, во вспомогательном, элементов формы не видно, кроме того, он не владелец формы и изменять содержимое не может? Как реализовать, алгоритм? Заранее спасибо!
0
|
|
| 15.01.2014, 16:18 | |
|
Ответы с готовыми решениями:
5
Диаграмма по основной и вспомогательной оси Обновление основной формы данными из внедрённой формы, основанной на основной форме [WPF] Размер формы от шрифта и текста label и перемещение формы мышкой по label |
|
708 / 708 / 226
Регистрация: 04.03.2013
Сообщений: 1,384
|
|||||||||||
| 15.01.2014, 16:55 | |||||||||||
|
Кликните здесь для просмотра всего текста
Добавлено через 8 минут Поправка:
1
|
|||||||||||
|
5 / 5 / 1
Регистрация: 05.11.2013
Сообщений: 58
|
|
| 15.01.2014, 17:06 [ТС] | |
|
Во, вопрос в тему - зачем проверка числа подписчиков на нулл, если я их контролирую(я же создаю экземпляры) и точно знаю, что они подпишутся, при инициализации ?
И имеет ли смысл наследоваться от EventArgs и создавать экземпляр класса в куче, если всего-то нужно - передать строку в лямбда-функцию?
0
|
|
|
708 / 708 / 226
Регистрация: 04.03.2013
Сообщений: 1,384
|
||||||
| 15.01.2014, 17:16 | ||||||
|
Если на событие никто не подписался, то его вызов приведет к исключению.
Создание своего делегата и класса параметров привел для примера, вобщем-то можно и создать событие
1
|
||||||
|
5 / 5 / 1
Регистрация: 05.11.2013
Сообщений: 58
|
|
| 15.01.2014, 17:21 [ТС] | |
|
Wow, I know kung-fu!
Реализовал через void delegate(string). Спасибо!
0
|
|
|
5 / 5 / 1
Регистрация: 05.11.2013
Сообщений: 58
|
|
| 20.01.2014, 14:21 [ТС] | |
|
Рано радовался, похоже.
Начал усложнять реализацию, и столкнулся с проблемами синхронизации доступа потоков к форме В методе экземпляра вспомогательного класса генерирую эвент, в котором передаю int, который выступает в качестве Value для ProgressBar и string в качестве Content для Label. В экземпляре класса окна подписываюсь на эвент с применением лямбда-функции, в которой и присваиваю значения прогрессбару и лэйблу. Генерирует "The calling thread cannot access this object because a different thread owns it." Если же вызывать через Dispatcher.BeginInvoke(new Action(() => {prgbar.Value = x; label.Content = y;} - то контролы на форме не изменяются, при брекпоинте проваливается во внутренний дотнетовский цикл обработки WM-сообщений. Такое ощущение, что лямбда во втором случае не срабатывает. Коллеги, подскажите, как отлаживать такой тип ошибок? Или может у кого есть линки на статьи, посвященные отладке синхронизации? Спасибо! Добавлено через 10 минут Продолжаю держать вас в курсе =) В общем, такое поведение возникает только когда потоки дочернего процесса (который запускается во вспомогательном классе, и прогресс которого я и хочу показывать на форме) перенаправляются в streamreader, отчего дочерний процесс фэйлится и каким-то образом влияет на мой код. Перенаправление stderr, stdout делал в асинхронном режиме на основе примера из msdn. Соответственно, скорректирую вопрос - есть ли какие-либо подводные камни в перенаправлении потоков экземпляра класса Process?
0
|
|
| 20.01.2014, 14:21 | |
|
Помогаю со студенческими работами здесь
6
Ввод условий поиска с помощью вспомогательной формы Соответствие значения поля подчиненной формы полю таблицы основной формы
Фильтрация данных основной формы через данные подчиненной формы в MS Access 2013
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2.
Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники".
В. . .
|
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии.
. . .
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3.
Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
|