C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: Form2からForm1へ


(過去ログ 26 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■12099 / inTopicNo.1)  Form2からForm1へ
  
□投稿者/ 案とー (1回)-(2007/12/30(Sun) 10:28:10)

分類:[C#] 

2007/12/30(Sun) 11:45:07 編集(投稿者)

はじめまして。
c#2005初心者です。

c#で、テキストエディタを作っています。
Form2からForm1のテキストボックスが編集できないで困っています。

---Form1---

private void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
f.ShowDialog(this);
}

---Form2---

Form1 fm;
public Form2()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
fm.textBox1.Text = textBox1.Text;
}

上のようにすると、コンパイルはできるのですが、
Form2のボタンを押したときに、
「オブジェクト参照がオブジェクトインスタンスに設定されていません。」
という実行時エラーが出てしまいます。
どうしたらいいでしょうか。
アドバイスお願いします。
引用返信 編集キー/
■12104 / inTopicNo.2)  Re[1]: Form2からForm1へ
□投稿者/ れい (351回)-(2007/12/30(Sun) 13:27:52)
No12099 (案とー さん) に返信
> 「オブジェクト参照がオブジェクトインスタンスに設定されていません。」
> という実行時エラーが出てしまいます。

変数fmにオブジェクトが格納されてないからエラーになります。

> どうしたらいいでしょうか。

fmにオブジェクトを設定します。
たとえば、

> private void button1_Click(object sender, EventArgs e)
> {
> Form2 f = new Form2();
> f.fm = this;
> f.ShowDialog(this);
> }

> public Form1 fm;

とします。

クラス、オブジェクト、インスタンス、変数、
この四者の関係をもう一度勉強することをオススメします。
引用返信 編集キー/
■12149 / inTopicNo.3)  Re[2]: Form2からForm1へ
□投稿者/ 案とー (2回)-(2007/12/31(Mon) 20:22:29)
No12104 (れい さん) に返信

> private void button1_Click(object sender, EventArgs e)
> {
> Form2 f = new Form2();
> f.fm = this;
> f.ShowDialog(this);
> }

ありがとうございます。
またわからないところがありましたらご迷惑をおかけすると思いますが、
そのときはよろしくお願いします。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -