Доступ одной метки WindowsForm к другой форме в C#
Я использую два окна формы приложения, и я хочу установить значение метки 1-й формы из 2-й формы. Но когда я получаю доступ к метке 1-й формы во 2-й форме, приложение показывает эту ошибку
Object reference not set to an instance of an object.
Я использую это заявление для доступа
login_form.ActiveForm.Controls["label_name"].Text = "Hello World";
когда-то я работал нормально, но когда-нибудь показать эту ошибку
Пожалуйста, решите мою проблему. Я буду очень благодарен вам.
1 ответ
Вы были бы мудры либо:
- Предоставьте свойство в первой форме, с помощью которого вы можете внести изменения в текст метки.
- Предоставьте в первой форме метод, который можно вызвать, чтобы повлиять на изменение текста метки.
Пример № 1:
public class Form1 : Form
{
public String LabelText
{
get { return label_name.Text; }
set { label_name.Text = value; }
}
}
//from Form2...
login_form.LabelText = "Hello World";
Пример № 2:
public class Form1 : Form
{
public void SetLabelText(String TextToSet)
{
label_name.Text = TextToSet;
}
}
//from Form2...
login_form.SetLabelText("Hello World");
Я бы не советовал просто менять элемент управления на Public
, Косвенный доступ предпочтительнее.