Я пытаюсь сохранить строку из одной формы в метку из другой. Однако при этом он говорит, что это невозможно из-за его уровня защиты. Любые идеи о том, как это исправить?
maskedTxtLogin.Text = FormInvisible.lblInitials.Text();
Я пытаюсь сохранить строку из одной формы в метку из другой. Однако при этом он говорит, что это невозможно из-за его уровня защиты. Любые идеи о том, как это исправить?
maskedTxtLogin.Text = FormInvisible.lblInitials.Text();
Элементы управления создаются как частное поле в дизайнере форм:
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;
Это еще один способ изменить уровень защиты
Открыть FormInvisible.Designer.cs
Найдите private System.Windows.Forms.Label lblInitials;
Измените модификатор доступа с private
на public
или вы можете открыть свойство элемента управления и изменить Modifiers
с private
на public
private
на public
считается плохой практикой. Никогда не делайте этого и всегда старайтесь использовать свойства!
- person Salah Akbari; 04.12.2018