みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Form2のテキストボックスを更新する方法(C#)

namespace WindowsFormsApplication_test {
public partial class Form1:Form {
public Form1() { InitializeComponent(); }
private void Form1_Load(object sender,EventArgs e)
{
Form2 Fm2 = new Form2();
Fm2.StartPosition = FormStartPosition.CenterScreen;
Fm2.Show();
}
private void button1_Click(object sender,EventArgs e)
{
Random a = new Random();
int x=a.Next(100);
x=x+10;
textBox1.Text=x+"";
} } }

起動時にForm1とForm2を表示するプログラムを作ったのですが、
Form1のボタンをクリックした時、
Form2のtextBox1に、Form1のxの値を表示する方法が分かりません。
記述方法を教えて下さい。

投稿日時 - 2012-05-10 03:17:15

QNo.7467639

困ってます

質問者が選んだベストアンサー

こんな感じでどないでっか。もちろん試してませんので試してみてください。変えたところにはコメントを書いているのでどう変わったか、なぜ変わったかを考えてみそ。また、どう改良すれば良いか(Form2#textBox1をpublicにしなくてすむ方法はないか)も併せて検討されたい。

namespace WindowsFormsApplication_test {
public partial class Form1:Form {
private Form2 Fm2 = null; // Newしたメソッドが終了した後も参照を保持し続けるため
public Form1() { InitializeComponent(); }
private void Form1_Load(object sender,EventArgs e)
{
Fm2 = new Form2(); // Fm2は自動変数ではなくインスタンス変数だ
Fm2.StartPosition = FormStartPosition.CenterScreen;
Fm2.Show();
}
private void button1_Click(object sender,EventArgs e)
{
Random a = new Random();
int x=a.Next(100);
x=x+10;
Fm2.textBox1.Text=x+""; // Form2#textBox1はpublicである事!
} } }

投稿日時 - 2012-05-10 03:37:40

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問