• 締切済み

動的に配置したpictureboxについて

Visual C# 2008を使っています。 pictureboxを動的に配置し、そのpictureboxをクリックすることで 初めて押せるようなボタンを用意したいと思っています。(通常は「ボタン名.Enable = false」にしています) しかし、静的に配置したpictureboxならうまくいくのですが、動的に配置したpictureboxはクリックしても反応しません。 これは何が原因なのでしょうか? わかる方がいましたら回答をお願いします。

みんなの回答

回答No.1

イベントハンドラが登録されていないのではないでしょうか? void picturebox_Click(object sender, EventArgs e) { // クリック時の処理 } このメソッドをイベント発生で呼び出すにはコントロールの作成時に picturebox.Click += new EventHandler(this.picturebox_Click); として、イベントハンドラを登録する必要があります。

kiyo061
質問者

お礼

ご回答ありがとうございます。 おっしゃられた通り、イベントハンドラを登録したらうまくできました。 ありがとうございました♪

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • PictureboxがEnabledがfalseでもtooltipを表示させたい

    言語はC#です。 PictureboxのEnabledがfalseの際でも、 tooltipによる表示を行いたいのです。 しかし、通常の動作ではEnabledがfalseの際、 tooltipが表示されません。 どうやれば、表示できるようになりますか。

  • C# pictureBox(a)

    Visual C# 2008にて int a = 3; pictureBox(a).Image = Properties.Resources.Icon1_2; みたいな代入の方法がどうしても解りません Properties.Resources.Icon1_2は リソースのIcon1_2.bmpです 過去のQ&A QNo6332332を読んでも解りません。 pictureBoxを貼り付けてダブルクリック Tagを1.などに設定 private void pictureBox1_Click(object sender, EventArgs e) { PictureBox pict = sender as PictureBox; MessageBox.Show(pict.Name); MessageBox.Show(pict.Tag.ToString()); int picb = int.Parse(pict.Tag.ToString()); pictureBox(picb).Image = Properties.Resources.Icon1_2; } 上のようにしたい アドバイスをお願いできませんでしょうか

  • VB.NETでPictureBoxへの描画について

    VB.NETでPictureBoxへの描画について PictureBoxに画像を表示し、余白部分を含めて、マウスで描画できる処理を作成しているのですが、 どうも上手くいかない為、皆さんの知恵をお借りしたいと思い質問させて頂きました。 まず、880×560のPictureBoxを用意し、その中に、600×480の画像を埋め込んでいます。 そのPictureBoxの中で、画像以外の部分(余白)にもマウスで線等を書きたいのです。 画像のみに描く場合は上手くいくのですが、余白を含めると上手くいかなくなってしまい、 困っております。 プログラムの違いは以下の箇所のみです。2の場合は上手くいきます。 1.PictureBox全体に描画する(画像も含め) Dim g As Graphics = PictureBox1.CreateGraphics 2.画像のみに描画する Dim g As Graphics = Graphics.FromImage(PictureBox1.Image) ちなみに、マウスではなく、ボタンクリック時に描画した時は、1の場合でも上手くいきます。 お手数ですが、ご回答の程、よろしくお願いします。

  • pictureboxの画像を削除するには?

    Visual C# 2008を使用しています。 ボタンを押すとpictureboxに画像が表示されるプログラムを作成しました。 今度は、その表示された画像をクリックし、別のボタンを押すことでその画像が削除できるようにしたいと思っているのですが、うまくプログラムできません。 誰か教えていただけないでしょうか? ソースコードは以下のようになっています。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace algorithm { public partial class Form1 : Form { int space = 10; public Form1() { InitializeComponent(); } private void listBox1_SelectedIndexChanged(object sender, EventArgs e) { } private void kihonsyori_Click(object sender, EventArgs e) { if (this.pictureBox1.Image == null) { Bitmap img = new Bitmap(@"C:\Documents and Settings\admin\My Documents\Visual Studio 2008\Projects\algorithm\algorithm\picture\基本処理箱.png"); Graphics g = pictureBox1.CreateGraphics(); g.DrawImage(img, 0, space, 0.4F * img.Width, 0.3F * img.Height); space += 50; img.Dispose(); g.Dispose(); } else { this.pictureBox1.Image.Dispose(); this.pictureBox1.Image = null; } } private void groupBox1_Enter(object sender, EventArgs e) { } private void pictureBox1_Click(object sender, EventArgs e) { } private void hanpuku_Click(object sender, EventArgs e) { if (this.pictureBox1.Image == null) { Bitmap img = new Bitmap(@"C:\Documents and Settings\admin\My Documents\Visual Studio 2008\Projects\algorithm\algorithm\picture\反復箱.png"); Graphics g = pictureBox1.CreateGraphics(); g.DrawImage(img, 0, space, 0.4F * img.Width, 0.3F * img.Height); space += 80; img.Dispose(); g.Dispose(); } else { this.pictureBox1.Image.Dispose(); this.pictureBox1.Image = null; } } private void sentaku_Click(object sender, EventArgs e) { if (this.pictureBox1.Image == null) { Bitmap img = new Bitmap(@"C:\Documents and Settings\admin\My Documents\Visual Studio 2008\Projects\algorithm\algorithm\picture\選択箱.png"); Graphics g = pictureBox1.CreateGraphics(); g.DrawImage(img, 0, space, 0.4F * img.Width, 0.3F * img.Height); space += 80; img.Dispose(); g.Dispose(); } else { this.pictureBox1.Image.Dispose(); this.pictureBox1.Image = null; } } private void sakujyo_Click(object sender, EventArgs e) { pictureBox1.Image = null; space = 0; } } }

  • PictureBoxの背景色変更(VB.NET)

    最近、VB.NETを勉強し始めた初心者です。 スクロールバーとテキストボックスを利用し PictureBoxの背景色を変更させるプログラムを作りたいのですが 色変更のやりかたがわかりません。 赤・緑・青に対応した3本のスクロールバーと3つのテキストボックスを用意し スクロールバーを動かす、もしくはテキストボックスに値を直接入力すし ボタン1を押すと、PictureBoxの背景色が入力した値に応じて変わるように設定します。 スクロールバーを動かした時は、テキストボックスにスクロールバーの値を表示させます。 実行直後は赤・緑・青の全てが0ですので、黒になっています。 (なお、値の最大は255です) また、実行直後のテキストボックスは「0」と表示するようにします。 ボタン2を押すとすべての値が初期化され、実行直後と同じ状態になります。 いろいろと調べたのですが、未だにわからず困っています。 それぞれの配置やスクロールバーの値の範囲設定等はすべて書き終えています。 やりかたがわかるかたがいましたら、教えていただけますか。 お願いします。

  • VC++:pictureBoxにイベントなしで描画

    前略 ・ Visual Studio 2012 のVC++を使っています。 フォームに貼り付けたピクチャーボックスに、フォームが表示された時にボタンクリック等特にイベントを発生させないでも 描画したいのですができません。 どなたか教えていただければ幸いです。  以下の例で具体的に教えてください。 ボタンもフォームに貼りつけてボタンクリックイベントの中に以下のようにコーディングしてボタンをクリックすると円が描けます。 どのようにすれば、ボタンクリックしないでもフォームが表示された時に、円がピクチャーボックスの中に描画されているようになるのででしょうか?    private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { // 描画を行うグラフィックスクラスを生成 Graphics^ g = pictureBox1->CreateGraphics(); //円の描画 Pen^ blackPen = gcnew Pen(Color::Black, 3); g->DrawEllipse(blackPen, 50, 50, 75,75); //基点(50,50) 幅×高さ:75×75  } 以上、よろしくお願いします

  • VB .net Form_Load時、または関数内でPictureBoxにライン描画を行ないたい。

    Form上にPictureBox,Buttonを配置して、Botton_Click処理時にPictureBox上へのライン描画は Dim g As Graphics = PictureBox1.CreateGraphics g.DrawLine(Pens.Red, 0, 0, 100, 200) g,Dispose() にて行なえましたが、同じような描画を Form_Load時に上記の処理を入れても全く描画されません。Button_Clickイベントのように1クッション置かないと実現できないのでしょうか? Form_Load時、関数内などで周期的にライン描画を 行なってやりたいのですが、どなたか解決方法をご存知の方がいましたら回答の程よろしくお願いいたします。

  • ホームページビルダーで「どこでも配置パレット」が表示されない。

    ホームページビルダー 8を使っています。 上方のバーの中央付近にある「どこでも配置パレットの表示/非表示」のボタンをクリックしても、パレットが現れません。 クリックした時に、そのボタンは凹んだり出っ張ったりしますので、反応はしているようですが、表示と非表示の動きがありません。 以前はこの操作でうまくいっていました。 どうやれば、どこでも配置パレットを表示できるでしょうか? または、表示されているのに、別の表示の下に隠れてしまっているのでしょうか?

  • C#で動的にラベルを配置したい。

    C#で動的にラベルを配置したい。 ボタンイベントで動的にラベルを配置したいと考えています。 しかし、ロジックが解らず困っています。 ラベル名のつけ方(label1,label2等の名前)や、 ラベルの配置方法(location?)等アドバイスよろしくお願いいたします。 参考になるサイト等もございましたら、リンクもあれば幸いです。 m(_ _)m

  • VB.NETで画像の拡大・縮小

    みなさんよろしくお願いします。 Form上にPictureBoxを配置して ボタンをクリックしながら 画像を拡大したり、縮小したり したいと思っているのですが、 参考になるようなサイトってあり ますでしょうか?どうかよろしく お願いします。