1

フォルダをループして各画像ファイルを取得し、フォームに画像ボックスを描画する関数を作成しました。これが関数です:

    private void Create_Controls(string Img_path)
    {
        PictureBox p = new PictureBox();
        p.Size = new Size(138, 100);
        p.Location = new Point(6, 6);
        p.BackgroundImage = Image.FromFile(Img_path);
        p.BackgroundImageLayout = ImageLayout.Stretch;

        this.Controls.Add(p);
    }

したがって、私がする必要があるのは、フォーム上の任意の画像ボックスをクリックするたびに、画像ファイルのパスを含むメッセージポップアップです。

だから私はカスタムイベントを追加することを考えました:

p.Click += delegate { Pop_Up(); };

    private void Pop_Up()
    {
        /* POP UP MESSAGE WITH Picturebox image file path*/
    }
4

4 に答える 4

5

PictureBoxのプロパティImageLocationを使用する必要があります。このプロパティは、PictureBox に表示する画像のパスまたは URL を取得または設定します。

于 2012-07-30T12:44:30.290 に答える
4

次の手順を実行してください。

p.Click += new EventHandler(Pop_Up);

...

private void Pop_Up(object sender, EventArgs e)
{
  var pb = sender as PictureBox;
  if(pb != null)
    MessageBox.Show(pb.ImageLocation);
}
于 2012-07-30T12:51:32.833 に答える
1

Tagこれにはプロパティを使用できます。

このようなもの 。

private void Create_Controls(string Img_path)
{
  PictureBox p = new PictureBox();
  p.Size = new Size(138, 100);
  p.Location = new Point(6, 6);
  p.Tag  = Img_path;
  p.BackgroundImage = Image.FromFile(Img_path);
  p.BackgroundImageLayout = ImageLayout.Stretch;

  this.Controls.Add(p);
}

private void Pop_Up()
{
   MessageBox.Show(p.Tag);
}

詳細については、こちらを参照してください

于 2012-07-30T12:45:28.740 に答える
1

次に、HatSoft の説明に従って、Pop_up()メソッドを次のように変更します。

  private void Pop_Up(object sender, EventArgs e)
   {
       MessageBox.Show(((PictureBox)sender).ImageLocation);
   }

しかし、おそらくもう少しエレガントで、それが実際に aPictureBoxなどであるかどうかを確認します.

于 2012-07-30T12:46:54.080 に答える