Если я правильно понимаю, вам нужен класс, в котором хранится информация о настройках, к которой могут иметь доступ как Form1, так и Form2. Давайте назовем этот класс Form1Settings
и реализуем как:
public static class Form1Settings
{
public static string ButtonText;
public static string Uri;
}
Для простоты я сделал этот класс и его свойства статическими, поэтому и Form1
, и Form2
имеют прямой доступ к нему, устраняя необходимость в методе обновления.
Form1
будет вызывать Form2
блокирующим образом и обновлять его отображение только при нажатии кнопки ОК.
public partial class Form1 : Form
{
private Form2 form2 = new Form2();
public Form1()
{
InitializeComponent();
}
private void buttonSettings_Click(object sender, EventArgs e)
{
if (form2.ShowDialog() == DialogResult.OK)
{
this.button1.Text = Form1Settings.ButtonText;
this.textBoxUrl.Text = Form1Settings.Uri;
this.Update();
}
}
}
И, наконец, Form2 обновит значения настроек с помощью ввода от пользователя:
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void buttonOK_Click(object sender, EventArgs e)
{
Form1Settings.ButtonText = this.textBoxButton.Text;
Form1Settings.Uri = this.textBoxUri.Text;
this.DialogResult = DialogResult.OK;
this.Hide();
}
}