|
3 / 1 / 0
Регистрация: 18.09.2014
Сообщений: 77
|
||
Обращение к контролам второй формы из первой11.05.2015, 15:35. Показов 3396. Ответов 13
Метки нет (Все метки)
Здравствуйте, уважаемые форумчане!
В первую очередь хочу перед вами извиниться за то, что сейчас задам вопрос, который задавали здесь до меня сто раз... Долго я читал то, что нашел в поиске, но то ли невнимательно читал, то ли не хватает мне пока понималки, но испытываю проблемы с этим до сих пор. Нужно получить из одной формы доступ к контролам другой. Самый быстрый и простой - через изменение модификатора доступа с private на public... однако, мне известно, что увидев такой код, любой нормальный кодер постарается ударить меня чем-то очень тяжелым ![]() Вот в этой теме => Ответы на 7 самых частых вопросов по WinForms Нашел для себя способ, который показался мне наиболее привлекательным по балансу простоты/правильности, а именно:
Но при попытке данным способом воспользоваться сталкиваюсь с тем, что у меня он не работает. Прошу, научите меня пользоваться данным способом. Делаю предположение, что вставляю данные участки кода не туда, куда нужно.. или просто не понимаю чего-то в сути данного способа. Что пытаюсь сделать: Есть 2 формы. На первой форме - листбокс, который берет данные из текстового файлика. На второй форме - текстбокс. Первая форма - что то вроде списка справочника, вторая - его элемент. Нужно, чтобы при нажатии на элемент листбокса, открывалась форма с текстбоксом (уже реализовано), но не пустая, а с содержанием, соответствующим элементу списка листбокса, на который нажимаешь. С изменением модификатора доступа такая система работает... но так ведь нельзя. Помогите пожалуйста.
0
|
||
| 11.05.2015, 15:35 | |
|
Ответы с готовыми решениями:
13
Обращение из первой формы к элементам второй формы Обращение к функции первой формы из второй формы Обращение к контролам другой формы |
|
|
||
| 11.05.2015, 15:37 | ||
|
1
|
||
|
3 / 1 / 0
Регистрация: 18.09.2014
Сообщений: 77
|
|||
| 11.05.2015, 22:57 [ТС] | |||
this.data = data; У меня попросту нет такого варианта через оператор-точку, при попытке скопипастить - "не содержит определения для data и не найден метод расширения бла бла", не видит в общем. Что я делаю не так? Добавлено через 6 часов 31 минуту
0
|
|||
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,575
|
|
| 11.05.2015, 23:00 | |
|
0
|
|
|
2081 / 1239 / 464
Регистрация: 20.12.2014
Сообщений: 3,234
|
||
| 11.05.2015, 23:27 | ||
|
0
|
||
|
3 / 1 / 0
Регистрация: 18.09.2014
Сообщений: 77
|
|
| 13.05.2015, 00:09 [ТС] | |
|
Someone007, да, добавил, переменную то эту видит прекрасно. Свойства такого нет.
Эхехех.. неужели нет нормального материала по этой теме. В гайде либо не рабочие, либо что-то недосказанно... Добавлено через 1 минуту chumich, именно этого я как раз стремлюсь всеми силами избежать, ведь это противоречит парадигме ООП. Цель того приложения, которое я сейчас пытаюсь таки сделать - исключительно учебная. Так зачем мне учиться кодить неправильно, ведь войдет в привычку, да так и останется.. Или я чего-то не понимаю?
0
|
|
|
|
||
| 13.05.2015, 00:17 | ||
|
Не то чтобы я советовал этим способом воспользоваться, но как минимум иногда можно. Ну, а так, ну взять стандартные диалоговые окна. Там все реализовано довольно просто: У диалога обычно есть свойство, которому можно присвоить значение и именно это значение и отображается при запуске. Обычно из этого же свойства и результат берется.
0
|
||
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,575
|
|
| 13.05.2015, 00:19 | |
|
Минимальный пример реализующий то что вы описали в 1 посте в моем понимании:
1
|
|
|
2081 / 1239 / 464
Регистрация: 20.12.2014
Сообщений: 3,234
|
|||
| 13.05.2015, 00:29 | |||
|
1
|
|||
|
3 / 1 / 0
Регистрация: 18.09.2014
Сообщений: 77
|
||||
| 13.05.2015, 04:40 [ТС] | ||||
|
Someone007, спасибо большое, но, не могу открыть в своей студии
( Более поздняя версия А можно кодом?diadiavova, Я оочень и очень начинающий в этом деле человек. При этом - самоучка, а значит, мне приходится брать интересующую меня информацию из множества разных источников. И часто встает вопрос - как мне, неопытному, определить - где советуют правильно, а где нет? Я захожу на этот форум, набираю в поиске свой вопрос и замечаю, что в 80% случаев в качестве ответа дают ссылку на указанную в ОП-посте тему. И в этой теме я вижу следующее:
Возможно, я совершенно напрасно выбрал своим первым языком программирования именно ООПный С#. Я что-то делаю, что-то получается, вижу прогресс, мне интересно - с этим все в порядке. Но, если честно, я не понимаю парадигму ООП. Я, в силу отсутствия опыта, не могу оценить последствия нарушения такого столпа ООП, как инкапсуляция. Возможно, все не так и страшно? Потому что мне значительно проще сейчас взять и изменить модификатор доступа, чем тратить огромное количество времени на поиск информации о том, как это обойти. Если я сгущаю краски и такие решения не в учебном, а в "повседневном" программировании вполне себе допустимы и не вызовут у моих будущих коллег рвоты, прошу Вас, направьте меня. И простите, если что-то в моих сообщениях показалось Вам оскорбительным, это от недостатка опыта, не более
0
|
||||
|
|
||||||||||||||||||
| 13.05.2015, 11:24 | ||||||||||||||||||
Сообщение было отмечено Katbert как решение
РешениеНу вот взять диалог, редактирующий текст. Там будет текстбокс, назовем его textBox1 и кнопки ОК и Отмена. Код этого окна будет выглядеть так
И вообще не надо к рекомендациям относиться как к догмам. Надо понимать для чего нужно выполнять те или иные правила, тогда будешь знать когда от них можно отступить. Пример прилагаю в аттаче, правда написан на vs2013, но если что, вполне можешь создать проект и добавить код оттуда. В принципе должно работать и в более старых версиях.
1
|
||||||||||||||||||
|
3 / 1 / 0
Регистрация: 18.09.2014
Сообщений: 77
|
|
| 13.05.2015, 21:58 [ТС] | |
|
diadiavova, спасибо огромное, сейчас буду разбираться !
![]() Добавлено через 33 минуты diadiavova, ай красота, все работает, еще и много новых инструментов для себя узнал! Еще раз большое спасибо!
0
|
|
|
|
||||||
| 14.05.2015, 11:39 | ||||||
|
Katbert, но на самом деле диалоговые окна фреймворка имеют несколько иной вид. Обрати внимание, что ни одно из стандартных окон не является наследником формы. Мало того, ты можешь добавить такое окно в форму из панели интсрументов и настроить его свойства прямо в дизайнере. При этом какой-либо доступ к элементам окна отсутствует в принципе. По большому счету это и есть лучший вариант далогового окна. Вот привожу вариант такого окна. Функционал тот же - редактируется текст. Изменить окошко в дизайнере уже не плучится, но создавал я его именно в нем, просто потом код дизайнера перенес в основной код.
Кликните здесь для просмотра всего текста
Добавь код в проект, собери проект, после чего можно в дизанере добавлять компонент к форме и редактировать его свойства(оно там одно актуально, но это просто пример).
1
|
||||||
|
3 / 1 / 0
Регистрация: 18.09.2014
Сообщений: 77
|
|
| 15.05.2015, 20:18 [ТС] | |
|
diadiavova, спасибо еще раз, все протестирую, просто закрутился маленько, дела поднавалились
0
|
|
| 15.05.2015, 20:18 | |
|
Помогаю со студенческими работами здесь
14
Обращение к контролам другой формы Обращение к первой форме из второй Отображение второй формы после отправки первой (и скрытие первой) Обращение из родительской формы к элементам второй формы Открытие (окна) второй формы всегда по центру относительно первой (формы) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|