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

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

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

Re[11]: Formの受け渡し


(過去ログ 10 を表示中)

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

■1839 / inTopicNo.1)  Formの受け渡し
  
□投稿者/ くに (1回)-(2007/03/07(Wed) 13:16:31)

分類:[C# (Windows)] 

ボタン用のForm1と実行画面のForm2二つを用意し、Form1のボタンを押すとForm2にPictureboxの画像が表示される、といったプログラムを作成しています。処理はForm1に書いております。
値の引渡しをするのでしょうか?どうすればForm2に描画できるのか。
よろしくお願いします。
引用返信 編集キー/
■1840 / inTopicNo.2)  Re[1]: Formの受け渡し
□投稿者/ Blue (286回)-(2007/03/07(Wed) 13:52:34)
何を渡すのでしょうか?

Form2はどのように開いているのでしょうか?
ボタンを押したときに ShowDialog で開くのでしょうか?
引用返信 編集キー/
■1841 / inTopicNo.3)  Re[1]: Formの受け渡し
□投稿者/ επιστημη (428回)-(2007/03/07(Wed) 13:56:04)
επιστημη さんの Web サイト
class Form1 : Form {
  Form2 target;
  void ボタンが押された(object sender, EventArgs e) {
    // なんかする
    target.描け(イメージ);
  }
}

class Form2 : Form {
  public void 描け(イメージ) {
    もらったイメージを描く
  }
}

あとはなんとかして Form1.target にForm2のハンドルを渡せば。

引用返信 編集キー/
■1842 / inTopicNo.4)  Re[1]: Formの受け渡し
□投稿者/ はつね (99回)-(2007/03/07(Wed) 14:05:16)
はつね さんの Web サイト
No1839 (くに さん) に返信
> ボタン用のForm1と実行画面のForm2二つを用意し、Form1のボタンを押すとForm2にPictureboxの画像が表示される、といったプログラムを作成しています。処理はForm1に書いております。
> 値の引渡しをするのでしょうか?どうすればForm2に描画できるのか。

Form1側でPictureBoxの画像を描画しているのでしょうか、それとも単にファイルから読み取っているのでしょうか。
読み取っているのならば、Form2にプロパティを用意して、そのプロパティにForm1からファイル名を渡して、Form2側でファイル名からPictureBoxに読み込むようにすれば、Form1はPictureBoxの事を知らずに済みます。

引用返信 編集キー/
■1843 / inTopicNo.5)  Re[2]: Formの受け渡し
□投稿者/ くに (2回)-(2007/03/07(Wed) 14:28:29)
ちょっと質問がわかりにくかったと思うのでソースを載せます。

Form2のボタンクリック
public void btnYuka1_Click(object sender, EventArgs e)
{
PictureBox pb1 = new PictureBox();

//プロパティの設定
pb1.Image = Image.FromFile(@"C:\Documents and Settings\〜");
pb1.Location = new System.Drawing.Point(17, 17);
pb1.Name = "pictureBoxA" + pbList1.Count;
pb1.Size = new System.Drawing.Size(63, 63);
pb1.TabIndex = pbList1.Count;
pb1.TabStop = false;

//イベントの設定
pb1.MouseDown += new MouseEventHandler(pictureBox_MouseDown);
pb1.MouseMove += new MouseEventHandler(pictureBox_MouseMove);
pb1.MouseUp += new MouseEventHandler(pictureBox_MouseUp);

pbList1.Add(pb1);
}

この処理を行います。
ここで作成されPictureBoxをform1に表示させたいわけです。

btnYuka1_Clickメソッド内で表示するコードを書けばいいのですか?
引用返信 編集キー/
■1844 / inTopicNo.6)  Re[3]: Formの受け渡し
□投稿者/ επιστημη (429回)-(2007/03/07(Wed) 14:36:45)
επιστημη さんの Web サイト
> Form2のボタンクリック
>         public void btnYuka1_Click(object sender, EventArgs e)
> ...
> この処理を行います。
> ここで作成されPictureBoxをform1に表示させたいわけです。

元投稿は
「Form1のボタンを押すとForm2にPictureboxの画像が表示される」
となってます。

どっちかがウソついてます。

引用返信 編集キー/
■1845 / inTopicNo.7)  Re[4]: Formの受け渡し
□投稿者/ くに (4回)-(2007/03/07(Wed) 14:46:47)
申し訳ございません。逆ですね。

Form1のボタンクリック
public void btnYuka1_Click(object sender, EventArgs e)
{
PictureBox pb1 = new PictureBox();

//プロパティの設定
pb1.Image = Image.FromFile(@"C:\Documents and Settings\〜");
pb1.Location = new System.Drawing.Point(17, 17);
pb1.Name = "pictureBoxA" + pbList1.Count;
pb1.Size = new System.Drawing.Size(63, 63);
pb1.TabIndex = pbList1.Count;
pb1.TabStop = false;

//イベントの設定
pb1.MouseDown += new MouseEventHandler(pictureBox_MouseDown);
pb1.MouseMove += new MouseEventHandler(pictureBox_MouseMove);
pb1.MouseUp += new MouseEventHandler(pictureBox_MouseUp);

pbList1.Add(pb1);
}

この処理を行います。
ここで作成されPictureBoxをform2に表示させたいわけです。
引用返信 編集キー/
■1846 / inTopicNo.8)  Re[5]: Formの受け渡し
□投稿者/ επιστημη (430回)-(2007/03/07(Wed) 14:49:20)
επιστημη さんの Web サイト
2007/03/07(Wed) 14:49:51 編集(投稿者)

> ここで作成されPictureBoxをform2に表示させたいわけです。

No1841 ではダメですか? どこがダメですか?

引用返信 編集キー/
■1847 / inTopicNo.9)  Re[6]: Formの受け渡し
□投稿者/ くに (6回)-(2007/03/07(Wed) 14:53:13)
今やってみてるので少々お待ちください。
引用返信 編集キー/
■1848 / inTopicNo.10)  Re[7]: Formの受け渡し
□投稿者/ くに (7回)-(2007/03/07(Wed) 15:22:25)
言われたとおり書いてみたところ*のようなエラーがでました。
ただいまtargetの使い方について調べています。


Form1−−−−−−−−

frmDragDrop target;

public void btnYuka1_Click(object sender, EventArgs e)
{

PictureBox pb1 = new PictureBox();


//プロパティの設定
pb1.Image = Image.FromFile(@"C:\Documents and Settings\fz\デスクトップ\PTO\test0214\4.5畳.jpg");
pb1.Location = new System.Drawing.Point(17, 17);
pb1.Name = "pictureBoxA" + pbList1.Count;
pb1.Size = new System.Drawing.Size(63, 63);
//pb.SizeMode = new PictureBoxSizeMode.AutoSize;
pb1.TabIndex = pbList1.Count;
pb1.TabStop = false;


//イベントの設定

pb1.MouseDown += new MouseEventHandler(pictureBox_MouseDown);
pb1.MouseMove += new MouseEventHandler(pictureBox_MouseMove);
pb1.MouseUp += new MouseEventHandler(pictureBox_MouseUp);

pbList1.Add(pb1); *オブジェクト参照がオブジェクト インスタンスに設定されていません。

target.TestKake(pb1);

}

Form2−−−−−−−−−−

public void TestKake(PictureBox pb)
{
this.panel2.Controls.Add(pb); //panel2に表示
}
引用返信 編集キー/
■1849 / inTopicNo.11)  Re[8]: Formの受け渡し
□投稿者/ επιστημη (431回)-(2007/03/07(Wed) 15:41:02)
επιστημη さんの Web サイト
> 言われたとおり書いてみたところ*のようなエラーがでました。
> ただいまtargetの使い方について調べています。

No1842 読みました? 読んでないでしょ。

  target.TestKake(@"C:\Documents and Settings\fz\デスクトップ\PTO\test0214\4.5畳.jpg");

Form2−−−−−−−−−−

  public void TestKake(string imagefile)
  {
     imagefileを描く
  }

ってやればいーやん。

引用返信 編集キー/
■1851 / inTopicNo.12)  Re[9]: Formの受け渡し
□投稿者/ くに (8回)-(2007/03/07(Wed) 15:50:47)
No1849 (επιστημη さん) に返信
これだと下記のような処理ができないような気がするのですができるのですか??

//イベントの設定

pb1.MouseDown += new MouseEventHandler(pictureBox_MouseDown);
pb1.MouseMove += new MouseEventHandler(pictureBox_MouseMove);
pb1.MouseUp += new MouseEventHandler(pictureBox_MouseUp);
引用返信 編集キー/
■1852 / inTopicNo.13)  Re[10]: Formの受け渡し
□投稿者/ επιστημη (432回)-(2007/03/07(Wed) 15:55:14)
επιστημη さんの Web サイト
> //イベントの設定
>
> pb1.MouseDown += new MouseEventHandler(pictureBox_MouseDown);
> pb1.MouseMove += new MouseEventHandler(pictureBox_MouseMove);
> pb1.MouseUp += new MouseEventHandler(pictureBox_MouseUp);

えと、Form2にあるPictureBox上でのマウス操作イベントを
Form1のハンドラに受理させたいってことですか?

3つのハンドラを Form2.TestKake()の引数に与えてはいかがですか?


引用返信 編集キー/
■1854 / inTopicNo.14)  Re[11]: Formの受け渡し
□投稿者/ くに (9回)-(2007/03/07(Wed) 16:01:06)
毎度毎度、的確な返信ありがとうございます。
やってみます!!
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -