Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 03.02.2017
Сообщений: 58
1

Управление объектом формы1 через форму2 (почему не выходит)

22.07.2017, 01:23. Показов 992. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет! Суть такова. Есть форма 1, она главная. Есть форма 2, где форма1 у неё родитель. Я выбрал эту взаимосвязь (родительскую) чтобы обмениваться данными между формами. (Читал FAQ наравлять меня туды не надо )

В форме1 создан экземпляр "LG" самописного класса, который живёт пока жива форма и мутит свои прописанные ему дела. У этого LG есть публичная переменная public bool b. Я хочу получить к ней доступ из формы2. Раз взаимосвязь родительская установлена, так почему же я не могу поменять значение переменной? Ошибка: объект LG недоступен ввиду его уровня защиты. Как так то, если владелец формы2 указан?

Делал по FAQ:
При создании второй формы устанавливаем владельца в первой форме:
C#
1
2
3
4
5
6
    private void button_properties_Click(object sender, EventArgs e)
    {
        Form2 f2 = new Form2();
        f2.Owner = this; // устанавливаем владельца формы 2
        f2.Show();
    }
Код где ошибка во второй форме:
C#
1
2
3
4
5
6
7
8
    private void checkBox_log_CheckedChanged(object sender, EventArgs e)
    {
        Form1 main = this.Owner as Form1;  // определяем владельца формы Form2
        if (checkBox_log.Checked) { // если чекбокс чекнут
            if (main != null) main.LG.b = true;
        }
       // else 
    }
Знаю про возможность изловчиться и сделать через static, но не хочу. Хочу понять, почему тут не работает. Объясните как китайцу.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.07.2017, 01:23
Ответы с готовыми решениями:

Как запустить из формы1 всплывающую форму2, которая ищет данные по активному полю формы1?
Помогите ! Как запустить из формы1 всплывающую форму2, которая ищет данные по активному полю формы1...

Переход из формы1 в форму2
Суть проблемы в том что в форме1 используется таймер который переводит курсор на поле едит1: void...

Передача информации из формы1 в форму2
Добрый день. Знаю данных тем на передачу инфы из формы в форму было много, но я почему застрял на...

Обновить подчиненную форму2 из подчиненной формы1
Имеется главная форма и в ней две подчиненные: подчиненная1 и подчиненная2. Подчиненная1 зависит...

4
8940 / 4852 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
22.07.2017, 01:48 2
Цитата Сообщение от adept_csharpa Посмотреть сообщение
объект LG недоступен ввиду его уровня защиты
Видимо, он объявлен у тебя с модификатором доступа private или protected. Чтобы член класса был виден извне, модификатор доступа у него должен быть public либо internal
0
0 / 0 / 0
Регистрация: 03.02.2017
Сообщений: 58
22.07.2017, 02:24  [ТС] 3
Цитата Сообщение от ViterAlex Посмотреть сообщение
Видимо, он объявлен у тебя с модификатором доступа private
Так и есть, а зачем мне всего его делать public? Я сделал public только нужную в нём переменную.
0
8940 / 4852 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
22.07.2017, 02:28 4
Ты спросил почему не получается. Я ответил. Почитай ещё про модификаторы доступа
0
84 / 85 / 48
Регистрация: 12.10.2013
Сообщений: 1,079
22.07.2017, 10:05 5
adept_csharpa, напишите свой модификатор доступа и тогда Ваши вопросы потеряют смысл.
0
22.07.2017, 10:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.07.2017, 10:05
Помогаю со студенческими работами здесь

Передача из формы1 в форму2, закрытие и таймер
Всем привет )) вот я начал изучать С++ билдер и вот у меня возникли вопросы Первое: как...

Переход кнопкой из формы1 в форму2 на новую запись?
в форме №1 есть кнопка которая отправляет в форму №2. по умолчанию в форме №2 отображается самая...

Как передать переменную из формы1 в форму2 без противоречий основам ООП?
Как передать переменную из формы1 в форму2? Без противоречий основам ООП.

Почему при выводе значения в поле text выходит значение с объектом axes?
вот код формы: function popitka3 global hForma global hEd1 hEd2 hTxt1 hTxt2 global hBut ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru