Как взять значение из формы 1 в форму 2 И обратно? - PullRequest
0 голосов
/ 27 апреля 2018

Хорошо, вот такая ситуация: Я хочу взять значение строки из form1 в текстовое поле в form2, отредактировать его и отправить обратно, а затем снова сохранить как строку в form1. Это так просто, но я слишком глуп, чтобы преуспеть. Да, я гуглил и пытался очень долго, но я просто не могу найти нужные теги. Я попробовал это следующим методом:

public partial class form1: Form
{
    public form1()
    {
        InitializeComponent();
    }

    Project.form2 newform2 = new Project.form2();
    string oldtext = "Text here";

    void somefunction()
    {
        oldtext = newform2.getUpdateTxt();
    }
}

и

public partial class form2: Form
{

    Project.form1 newform1 = new Project.form1();
    string UpdateTxt = "";
    public form2()
    {
        InitializeComponent();
    }
    private void button1_Click(object sender, EventArgs e)
    {
        UpdateTxt = textBox1.Text;
        this.Hide();
    }

    public string getUpdateTxt()
    {
        return UpdateTxt;
    }

    private void form2_VisibleChanged(object sender, EventArgs e)
    {
         textbox1.Text = newform1.oldtext.Text;
    }
}

явно не работает. Потому что это создает бесконечный цикл. Я тоже попробовал, поставив

Project.form newform = new Project.form();

В собственной функции. Решает цикл, но теперь он сбрасывает значения при инициализации. Также пытался создать родительские формы, как описано здесь, но это не помогло. C # - Как сделать, чтобы две формы ссылались друг на друга

1 Ответ

0 голосов
/ 27 апреля 2018

Самое простое решение, которое я могу придумать для этого, - поместить значение, которое вы хотите разделить между формами, в статическое свойство статического класса:

public static class SharedVariables
{
    public static string OldText { get; set; }
}

Затем вы можете установить TextBox.Text на значение свойства с помощью:

textBox1.Text = SharedVariables.OldText;

И вы можете назначить новое значение, введенное в другом TextBox.Text с помощью:

SharedVariables.OldText = textBox2.Text;

Это, как говорится, в зависимости от того, какова цель форм, это может быть не лучшее решение.

...