C # Windows формы - хотите обновить значение текстового поля динамически - PullRequest
0 голосов
/ 22 апреля 2019

У меня есть две формы - с несколькими текстовыми полями (оба выглядят одинаково)

Если я изменю значение tb1 в форме 1, то значение tb1 в форме 2 должно обновляться на лету, без необходимости снова открывать форму 2 и т. Д.

1 Ответ

1 голос
/ 22 апреля 2019

Предполагается, что Form1 открывает Form2.

В Form2 создайте Открытое свойство для предоставления TextBox другим классам:

public partial class Form2 : Form
{

    public TextBox TB2
    {
        get
        {
            return this.tb2;
        }
    }

    public Form2()
    {
        InitializeComponent();
    }

}

В Form1 теперь вы можете использовать открытое свойство для доступа к TextBox в Form2:

public partial class Form1 : Form
{

    public Form1()
    {
        InitializeComponent();
    }

    private Form2 f2 = null;

    private void button1_Click(object sender, EventArgs e)
    {
        if (f2 == null || f2.IsDisposed)
        {
            f2 = new Form2();
            f2.TB2.Text = this.tb1.Text;
            f2.Show();
        }
    }

    private void tb1_TextChanged(object sender, EventArgs e)
    {
        if (f2 != null && !f2.IsDisposed)
        {
            f2.TB2.Text = this.tb1.Text;
        }
    }

}

Обратите внимание на поле "f2", которое отслеживает, открыт ли уже экземпляр Form2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...