Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
2 / 2 / 0
Регистрация: 10.12.2021
Сообщений: 47

Поле недоступно из-за уровня доступа

26.03.2022, 15:59. Показов 913. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Вопрос я думаю вполне легкий, но не могу разобраться никак. У меня есть две формы, и при нажатии на кнопку одна формы скрывается, другая появляется, чтобы потом возможно было обратно перейти на "главную форму" я передаю ссылку этой главной формы в поле mainForm, делая поле приватны.
Почему не могу присвоить значение, если свойства стоят?

Код при клике на кнопку:
C#
1
2
3
4
5
6
7
        private void vkButton_Click(object sender, EventArgs e)
        {
            VkAuthorizationForm vkAuthorizationForm = new VkAuthorizationForm();
            vkAuthorizationForm.mainForm = this;
            this.Hide();
            vkAuthorizationForm.Show();
        }
Класс с "дочерней формой":
C#
1
2
3
4
5
6
7
8
9
    public partial class VkAuthorizationForm : Form
    {
        private Form mainForm { get; set; }
 
        public VkAuthorizationForm()
        {
            InitializeComponent();
        }
    }
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.03.2022, 15:59
Ответы с готовыми решениями:

Поле недоступно в силу уровня защиты
Создал окно авторизации Form1. После правильной авторизации должна открыться Form2 Сделал двух пользователей Admin, Klad. По заданию...

Однозначное отделение (классификация) оборудования уровня ядра/аггрегации от уровня доступа
Всем привет. Возник такой вопрос: можно ли по функциям или по железу понять уровень железки (ядра, аггрегации, доступа). Или это всё...

Поле объекта недоступно для записи
Здравствуйте уважаемые форумчане. Пытаюсь передать параметр в форму, вылазит ошибка о недоступности записи. &НаСервере ...

3
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18302 / 14226 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
26.03.2022, 16:37
Mr_buddy, это потому что ваше свойство (не поле) имеет модификатор private.
0
2 / 2 / 0
Регистрация: 10.12.2021
Сообщений: 47
26.03.2022, 17:34  [ТС]
Да, я посмотрел, что не так. Как я понимаю должно быть так:

C#
1
2
3
4
5
6
7
8
9
10
11
    public partial class VkAuthorizationForm : Form
    {
        private Form mainForm;
 
        public MainForm { get; set; }
 
        public VkAuthorizationForm()
        {
            InitializeComponent();
        }
    }

Но я не могу никак понять какое нам это преимущество дает. И я вот сейчас делаю дальше. У меня правда с другим классом еще интереснее:
C#
1
2
3
private InfoFriendsJson infoFriends;
 
public InfoFriendsJson InfoFriends { get; set; }
почему то используя свойство, оно не меняет infoFriends. У меня оно null остается. Тогда вообще смысл теряется этой переменной.
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18302 / 14226 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
26.03.2022, 18:09
Лучший ответ Сообщение было отмечено Mr_buddy как решение

Решение

Цитата Сообщение от Mr_buddy Посмотреть сообщение
Как я понимаю должно быть так:
Неверно понимаете. Так вы объявляете поле и свойство которые никак не связаны друг с другом. Именно поэтому поле и остается не инициализированным. Нужно было просто изменить модификатор на public
C#
1
2
3
4
5
6
7
8
9
    public partial class VkAuthorizationForm : Form
    {
        public Form mainForm { get; set; }
 
        public VkAuthorizationForm()
        {
            InitializeComponent();
        }
    }
Или что лучше сделать инициализацию через конструктор
C#
1
2
3
4
5
6
7
8
9
10
    public partial class VkAuthorizationForm : Form
    {
        private Form _mainForm;
 
        public VkAuthorizationForm(Form mainForm)
        {
            InitializeComponent();
            _mainForm = mainForm ?? throw new ArgumentNullException(nameof(mainForm));
        }
    }
Так вы покажете что родительская форма обязательна в данном случае.

Во втором случае сделайте тоже самое. Поле infoFriends удалите. От того что вы назвали поле и свойство похожими именами не свяжет их.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.03.2022, 18:09
Помогаю со студенческими работами здесь

Поле объекта недоступно для записи
1c8.2 Справочник Сотрудники Модуль формы элемента Добавил Новыйреквизит Справочника. При добавлении в модуле строки: выдает...

Поле объекта недоступно для чтения
добрый день. 1с 8.3 клиент. Процедура ДатаНачалаПриИзменении(Элемент) БылоРассчитать=Объект.РассчитатьЗарплату; ругается, что не...

Расположение недоступно, нет доступа к:, файл или папка повреждены
Всем доброго дня. Столкнулся со следующей проблемой: дали хард для переноса папки с доками, сделал ctrl-c/ctrl-x (то бишь на самом харде...

Поле объекта недоступно для записи (Контрагент)
При выполнении функции появляется ошибка про недоступность записи для контрагента при этом все равно записывает значение. Как убрать...

почему обявление уровня доступа является нежелательным способом предявления доступа, в отличии от использования пространстрва имён?
почему обявление уровня доступа является нежелательным способом предявления доступа, в отличии от использования пространстрва имён?


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru