dポイントプレゼントキャンペーン実施中!

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の値を表示する方法が分かりません。
記述方法を教えて下さい。

A 回答 (1件)

こんな感じでどないでっか。

もちろん試してませんので試してみてください。変えたところにはコメントを書いているのでどう変わったか、なぜ変わったかを考えてみそ。また、どう改良すれば良いか(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である事!
} } }
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!