Доступ одной метки 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. Предоставьте свойство в первой форме, с помощью которого вы можете внести изменения в текст метки.
  2. Предоставьте в первой форме метод, который можно вызвать, чтобы повлиять на изменение текста метки.

Пример № 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, Косвенный доступ предпочтительнее.

Другие вопросы по тегам