powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Доступ к компонентам главной формы с других форм
25 сообщений из 52, страница 1 из 3
Доступ к компонентам главной формы с других форм
    #38293729
webber81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как сделать так чтобы в зависимости от установки флага в чекбоксе главной формы (Form1) выполнялись разные действия в Form2?
Код Form2
if (Form1.checkBox1.Checked == true)
a = 1;
if (Form1.checkBox1.Checked == false)
b = 2;

Компилятор не видит Form1 из второй формы
...
Рейтинг: 0 / 0
Доступ к компонентам главной формы с других форм
    #38293885
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webber81,
А Вы не сразу в форме код клепайте, а пишите контроллер в котором вешайте события на форму. От туда все видно будет.
Но в данном случае сделайте примерно так:
в Form1

private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked)
Form2.a=1;
else
Form2.b=2;
}
Хотя, это совершенно не грамотно с точки зрения архитектуры.
...
Рейтинг: 0 / 0
Доступ к компонентам главной формы с других форм
    #38293909
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALOTEwebber81,
А Вы не сразу в форме код клепайте, а пишите контроллер в котором вешайте события на форму. От туда все видно будет.
Но в данном случае сделайте примерно так:
в Form1

private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked)
Form2.a=1;
else
Form2.b=2;
}
Хотя, это совершенно не грамотно с точки зрения архитектуры.Почему не грамотно?
Компонентный подход: родительский компонент Form1 имеет ссылку на дочерний компонент Form2 и пользуется этим напрямую.

Только ТС, вместо свойств, нужно дёргать действия.
...
Рейтинг: 0 / 0
Доступ к компонентам главной формы с других форм
    #38293916
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

Да потому что, тут, как я понял, код прямо в форме пишется, без контроллера и модели.
...
Рейтинг: 0 / 0
Доступ к компонентам главной формы с других форм
    #38293922
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALOTEskyANA,

Да потому что, тут, как я понял, код прямо в форме пишется, без контроллера и модели.Контроллер - это частный случай MV* архитектуры. Совершенно не обязательно ему быть.
...
Рейтинг: 0 / 0
Доступ к компонентам главной формы с других форм
    #38293929
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
Мериться Фаулером, конечно, не стоит, но если бы он(контроллер) был, то подобная проблема бы, даже не возникла.
...
Рейтинг: 0 / 0
Доступ к компонентам главной формы с других форм
    #38293934
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webber81, ты похоже обращаешься к экземплярному полю класса так как будто это статическое поле. Чтобы исправить это можно передать экзепмляр первой формы при создании второй. Примерно так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
partial class Form1
{
    ...
    Form2 f2 = new Form2(this);
    f2.Show(); // или ShowDialog();
}
partial class Form2
{
    ...
    private Form1 _form;
    public Form2(Form1 form)
    {
        _form = form;
    }
    ...
    if (_form.checkBox1.Checked) a = 1;
   if (!_form.checkBox1.Checked) b = 2;
}



Еще лучше вместо формы передавать нужные "настройки". То есть передавать в конструктор Form2 признак отметки:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
partial class Form1
{
    ...
    Form2 f2 = new Form2(checkBox1.Checked);
    f2.Show(); // или ShowDialog();
}
partial class Form2
{
    ...
    private bool _isSomething;
    public Form2(bool isSomething)
    {
        _isSomething = isSomething;
    }
    ...
    if (_isSomething) a = 1;
   if (!_isSomething) b = 2;
}



webber81Компилятор не видит Form1 из второй формы
Вместо пересказа своими словами лучше всегда приводить полный текст ошибки.
...
Рейтинг: 0 / 0
Доступ к компонентам главной формы с других форм
    #38293944
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bazile,
Вы б ему еще, делегаты предложили использовать. Не факт, что данный код должен отработать до вызова конструктора второй формы.
...
Рейтинг: 0 / 0
Доступ к компонентам главной формы с других форм
    #38293958
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALOTEskyANA,
Мериться Фаулером, конечно, не стоит, но если бы он(контроллер) был, то подобная проблема бы, даже не возникла.Я очень рад, что Вы прочитали Фаулера и познакомились с MVC (я вот его к примеру толком не читал). Но не стоит простой компонентный подход записывать в не грамотные архитектуры.

Главный компонент знает о модели и управляет своими дочерними компонентами, передавая им либо модель целиком, либо часть, либо какие-то их модели, либо ничего.
Что тут не грамотного?
...
Рейтинг: 0 / 0
Доступ к компонентам главной формы с других форм
    #38293969
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
Например, если подчиненные формы понадобиться вызвать из других форм, то начнется дублирование кода.
...
Рейтинг: 0 / 0
Доступ к компонентам главной формы с других форм
    #38294014
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALOTE, какого кода? Кода создания подчинённой формы?
...
Рейтинг: 0 / 0
Доступ к компонентам главной формы с других форм
    #38294018
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
Кода обращений главной формы к подчиненным.
...
Рейтинг: 0 / 0
Доступ к компонентам главной формы с других форм
    #38294024
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALOTE, у Вас горизонтальные связи получаются. Их можно и в контроллерах нафигачить при желании.
...
Рейтинг: 0 / 0
Доступ к компонентам главной формы с других форм
    #38294034
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

Так я с самого начала и говорил, что нужно контроллер использовать.
...
Рейтинг: 0 / 0
Доступ к компонентам главной формы с других форм
    #38294049
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALOTEskyANA,

Так я с самого начала и говорил, что нужно контроллер использовать.Зачем? Контроллеры сами по себе не гарантируют того, что Вы не нафигачите горизонтальных связей между ними.
В Вашем примере дочерний компонент может генерировать событие, главная форма обрабатывать его и создавать другой дочерний компонент.
Тем самым никаких горизонтальных связей, никакого дублирования кода. И никаких контроллеров.
...
Рейтинг: 0 / 0
Доступ к компонентам главной формы с других форм
    #38294053
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALOTE, то, что Вы воспользовались MVC, чтобы решить свои проблемы, не означает, что их нельзя решить иначе.
...
Рейтинг: 0 / 0
Доступ к компонентам главной формы с других форм
    #38294090
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
Я ни в коем случае, не настаиваю, что MVC - панацея. Просто для создания масштабируемых систем, ничего лучше не придумали.

Код: sql
1.
В Вашем примере дочерний компонент может генерировать событие, главная форма обрабатывать его и создавать другой дочерний компонен


Это до тех пор, пока главная форма - одна.
...
Рейтинг: 0 / 0
Доступ к компонентам главной формы с других форм
    #38294169
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALOTEЯ ни в коем случае, не настаиваю, что MVC - панацея. Просто для создания масштабируемых систем, ничего лучше не придумали.
Если Вы про SOA системы, где есть front-end, back-end, public API, интеграция со сторонними сервисами, то это ой как сильно выходит за рамки топика.

ALOTE
Код: sql
1.
В Вашем примере дочерний компонент может генерировать событие, главная форма обрабатывать его и создавать другой дочерний компонен


Это до тех пор, пока главная форма - одна.
Пример desktop приложения с несколькими главными формами привести можете?
...
Рейтинг: 0 / 0
Доступ к компонентам главной формы с других форм
    #38294180
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAЕсли Вы про SOA системы, где есть front-end, back-end, public API, интеграция со сторонними сервисами, то это ой как сильно выходит за рамки топика.
да нет, я про любые бизнес приложения.

Пример desktop приложения с несколькими главными формами привести можете?
"Главная форма" в данном случае, это не ГФ приложения, а форма имеющая подчиненные формы. Примеров, когда одна подчиненная форма вызывается из разных мест, навалом.
...
Рейтинг: 0 / 0
Доступ к компонентам главной формы с других форм
    #38294211
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALOTEskyANAЕсли Вы про SOA системы, где есть front-end, back-end, public API, интеграция со сторонними сервисами, то это ой как сильно выходит за рамки топика.да нет, я про любые бизнес приложения.

Пример desktop приложения с несколькими главными формами привести можете?"Главная форма" в данном случае, это не ГФ приложения, а форма имеющая подчиненные формы. Примеров, когда одна подчиненная форма вызывается из разных мест, навалом.И у Вас были проблемы с диспетчеризацией этих вызовов? И Вы её решили при помощи MVC?
...
Рейтинг: 0 / 0
Доступ к компонентам главной формы с других форм
    #38294378
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAИ у Вас были проблемы с диспетчеризацией этих вызовов? И Вы её решили при помощи MVC?
Я ее решал разными способами. Но MVC, в долгосрочной перспективе, самый удобный вариант, позволяющий избежать дублирования кода. Хотя, с непривычки, может показаться, излишне громоздким.
...
Рейтинг: 0 / 0
Доступ к компонентам главной формы с других форм
    #38294387
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALOTE, мне MVC не кажется излишне громоздким там, где я его использую.
...
Рейтинг: 0 / 0
Доступ к компонентам главной формы с других форм
    #38294395
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAALOTE, мне MVC не кажется излишне громоздким там, где я его использую.
Это замечательно
...
Рейтинг: 0 / 0
Доступ к компонентам главной формы с других форм
    #38294563
VIT2708
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webber81,

Создайте статический класс с полями
...
Рейтинг: 0 / 0
Доступ к компонентам главной формы с других форм
    #38294687
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VIT2708webber81,

Создайте статический класс с полями

сказка про белого бычка
...
Рейтинг: 0 / 0
25 сообщений из 52, страница 1 из 3
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Доступ к компонентам главной формы с других форм
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]