хранение данных в другой форме вопросы защиты

Я пытаюсь сохранить строку из одной формы в метку из другой. Однако при этом он говорит, что это невозможно из-за его уровня защиты. Любые идеи о том, как это исправить?

 maskedTxtLogin.Text = FormInvisible.lblInitials.Text();

person Jack McLoughlin    schedule 04.12.2018    source источник
comment
создать специальное событие для этой цели   -  person Rahul    schedule 04.12.2018


Ответы (2)


Элементы управления создаются как частное поле в дизайнере форм:

private System.Windows.Forms.Label lblInitials;

Если вы хотите получить к ним доступ за пределами формы, вам необходимо создать свойство для них. Чтобы просмотреть приведенное выше объявление и написать для него свойство, просто щелкните правой кнопкой мыши lblInitials в своем коде и выберите Перейти к объявлению (или Определение) в классе, который вы перемещаются, чтобы написать следующий код:

public Label LblInitials
{
    get { return lblInitials; }
    set { lblInitials= value; }
}

Также вам нужно создать новый экземпляр вашей формы для доступа к этому свойству:

FormInvisible fr = new FormInvisible();
maskedTxtLogin.Text = fr.LblInitials.Text;
person Salah Akbari    schedule 04.12.2018
comment
Комментарии не для расширенного обсуждения; этот разговор был перенесено в чат. - person Samuel Liew♦; 07.12.2018

Это еще один способ изменить уровень защиты

Открыть FormInvisible.Designer.cs

Найдите private System.Windows.Forms.Label lblInitials;

Измените модификатор доступа с private на public

или вы можете открыть свойство элемента управления и изменить Modifiers с private на public

введите здесь описание изображения

person Anas Alweish    schedule 04.12.2018
comment
Изменение защиты полей с private на public считается плохой практикой. Никогда не делайте этого и всегда старайтесь использовать свойства! - person Salah Akbari; 04.12.2018
comment
@S.Akbari Конечно, это абсолютно верно, ваше решение лучше. это решение просто для того, чтобы предложить другой способ решения проблемы - person Anas Alweish; 04.12.2018