【问题标题】:C# : get the file path of picturebox onclickC#:获取picturebox onclick的文件路径
【发布时间】:2012-07-28 03:20:49
【问题描述】:

我创建了一个循环文件​​夹并检索每个图像文件并在表单上绘制图片框的函数。 这是函数:

    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*/
    }

【问题讨论】:

    标签: c# winforms user-interface user-controls picturebox


    【解决方案1】:

    您需要使用 PictureBox 的 ImageLocation 属性。该属性获取或设置要在 PictureBox 中显示的图像的路径或 URL。

    【讨论】:

      【解决方案2】:

      只需执行以下操作:

      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);
      }
      

      【讨论】:

        【解决方案3】:

        您可以为此使用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);
        }
        

        有关此Go here 的更多信息。

        【讨论】:

          【解决方案4】:

          然后按照 HatSoft 所说的,更改您的 Pop_up() 方法,例如:

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

          但也许更优雅一点,并检查它是否确实是 PictureBox 等。

          【讨论】:

            猜你喜欢
            • 2016-06-06
            • 2014-10-15
            • 2017-04-21
            • 1970-01-01
            • 2013-07-05
            • 1970-01-01
            • 2015-11-03
            • 1970-01-01
            • 2016-03-31
            相关资源
            最近更新 更多