C# で Form2からForm1のtextBox1の値を変更する

モーダルで表示したForm2の値をForm1に反映させる
fom1form2.jpg
Form1内のtextBox1は "Form1.Designer.cs"にあるとおり、private なのでForm2から参照できない。

private System.Windows.Forms.TextBox textBox1;

そのためForm1にtextBox1.Textにアクセスするpublicな変数を用意してForm2から参照させる。get , set はアクセサ。
■Form1.cs

public partial class Form1 : Form
{
// Form2
public Form2 cForm2;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// Form2 の新しいインスタンスを生成する
cForm2 = new Form2(this);
// Form2 をモーダルで表示する
cForm2.ShowDialog();
}
private void Form1_Load(object sender, EventArgs e)
{
}
public string TextBox1Text
{
get
{
return textBox1.Text;
}
set
{
textBox1.Text = value;
}
}
}

■Form2.cs

public partial class Form2 : Form
{
//Form1の宣言
Form1 cForm1;
public Form2(Form1 cForm1)
{
InitializeComponent();
// cForm1のインスタンスを作成
this.cForm1 = cForm1;
textBox1.Text = this.cForm1.TextBox1Text;
}
private void button1_Click(object sender, EventArgs e)
{
cForm1.TextBox1Text = textBox1.Text;
}
public string TextBox1Text
{
get
{
return textBox1.Text;
}
set
{
textBox1.Text = value;
}
}
}

29. 1月 2010 von memo-log
カテゴリ: その他 |

コメント

コメント投稿

Required fields are marked *