1

プログラムには2つのフォームがあります。両方にテキストボックスとボタンがあります。form1のボタンをクリックすると、form2が表示されますshowdialog(); 。form2にテキストボックスを入力してこのフォームのボタンをクリックすると、form2が閉じてform1にフォーカスが移り、form2に入力したテキストがform1のテキストボックスに転送されます。 。

これはどのようにすればよいですか?

4

4 に答える 4

3
  1. ダイアログとして表示されている form2 のインスタンスへの参照を form1 に保持します。
  2. form2のテキストボックスの内容を与えるform2のパブリックプロパティを公開する
  3. form2 が閉じると、コードの次の行がこのプロパティにアクセスし、その値を使用して form1 のテキスト ボックスに入力する必要があります。

何かのようなもの:

Window form2 = new Form2();
form2.ShowDialog();
this.textBox1 = form2.TextBoxValue;

form2プロパティが定義されている場所:

public string TextBoxValue {
  get { return textBox2.Text; }
}
于 2013-02-20T13:01:33.803 に答える
0

form2では、textbox修飾子のプロパティをpublicに変更する必要があります。これにより、デザイナーはテキストボックスのパブリックプロパティを生成するため、どこからでもアクセスできます。

form2が閉じたら、次のようにします。

myTextbox.Text = form2.textBox1.Text;
于 2013-02-20T13:07:41.227 に答える
0

これを試して:

(順番に) 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;
}
于 2013-02-20T13:23:54.957 に答える
0

セキュリティを気にしない場合、最も簡単な方法は、form1 の TextBox を public として宣言し、その text プロパティを form2 から変更することです。

于 2013-02-20T13:03:35.267 に答える