繁体   English   中英

选择了哪个图片框onClick? C#

[英]Which pictureBox was selected onClick? C#

我正在使用图像查看器,遇到一个小问题。

我使用对话框将图像加载到程序中,然后将其放入单独的图片框中。

我不知道如何为每个图片框执行onclick,因为单击它时我希望该图像显示在更大的图片框中。

public partial class Form1 : Form
{
    List<Bitmap> images = new List<Bitmap>();
    public Form1()
    {

        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        int x = 0;
        openFileDialog1.Filter = "Image Files(*.jpg; *.jpeg; *.bmp)|*.jpg; *.jpeg; *.bmp";
        openFileDialog1.Multiselect = true;

        if (openFileDialog1.ShowDialog() == DialogResult.OK)
        {
            foreach(String fileName in openFileDialog1.FileNames)
            {
                images.Add(new Bitmap(fileName));
                PictureBox pb = new PictureBox();
                Image loadedImage = Image.FromFile(fileName);
                pb.SizeMode = PictureBoxSizeMode.StretchImage;
                pb.Width = flowLayoutPanel1.Width;
                pb.Height = 200;
                pb.Image = loadedImage;
                pb.MouseClick += pb_MouseClick;
                flowLayoutPanel1.Controls.Add(pb);
                pb.Name = "" + x;
                x++;
            }
        } 
    MessageBox.Show(String.Format("{0} images loaded",images.Count),"",MessageBoxButtons.OK);
    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }

    void pb_MouseClick(object sender, MouseEventArgs e)
    {
        // handle click event
        if (e.Button == MouseButtons.Left)
            MessageBox.Show("Image clicked");

        pbMain.Image = images[0];
        pbMain.SizeMode = PictureBoxSizeMode.StretchImage;
    }
}

如果在图片框的Click处理程序中将sender投射到PictureBox如下所示:

PictureBox pb = (PictureBox)sender;

然后,您无需知道具体点击了哪个。 只需使用该引用即可抓取图像并将其放在较大的框中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM