プログラムには2つのフォームがあります。両方にテキストボックスとボタンがあります。form1のボタンをクリックすると、form2が表示されますshowdialog();
。form2にテキストボックスを入力してこのフォームのボタンをクリックすると、form2が閉じてform1にフォーカスが移り、form2に入力したテキストがform1のテキストボックスに転送されます。 。
これはどのようにすればよいですか?
何かのようなもの:
Window form2 = new Form2();
form2.ShowDialog();
this.textBox1 = form2.TextBoxValue;
form2
プロパティが定義されている場所:
public string TextBoxValue {
get { return textBox2.Text; }
}
form2では、textbox修飾子のプロパティをpublicに変更する必要があります。これにより、デザイナーはテキストボックスのパブリックプロパティを生成するため、どこからでもアクセスできます。
form2が閉じたら、次のようにします。
myTextbox.Text = form2.textBox1.Text;
これを試して:
(順番に) Form1:
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.Showdialog();
this.Hide();
}
次に Form2:
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2(textBox2.Text);
frm2.Showdialog();
this.Hide();
}
次にform1:
public partial class Form1 : Form
{
public string textBoxValue;
public Form1()
{
InitializeComponent();
}
public Form1(string textBoxValue)
{
InitializeComponent();
this.textBoxValue = textBoxValue;
}
private void Form1_Load(object sender, EventArgs e)
{
textBox1.Text = textBoxValue;
}
セキュリティを気にしない場合、最も簡単な方法は、form1 の TextBox を public として宣言し、その text プロパティを form2 から変更することです。