检查是否调用了button_click事件

本文关键字:click 事件 button 是否 调用 检查 | 更新日期: 2023-09-27 18:03:53

我的按钮pict让您选择一些图像。下面是这个按钮的click_event:

private void picture_Click(object sender, EventArgs e)
        {
            using (OpenFileDialog dlg = new OpenFileDialog())
            {
                dlg.Title = "Open Image";
                dlg.Filter = "Image files (*.jpg, *.jpeg, *.jpe, *.jfif, *.png) | *.jpg; *.jpeg; *.jpe; *.jfif; *.png";
            if (dlg.ShowDialog() == DialogResult.OK)
            {
                pict.Add(new Bitmap(dlg.FileName));
            }
        }
    }

我有几个相同的面板与这个按钮。如果我不使用pict按钮,那么它应该加载一个标准的图像。如何知道Picture_Click在哪个面板中调用,在哪个面板中不调用?(我也想把一个小PictureBox附近的按钮被点击)。Standart形象![1]

检查是否调用了button_click事件

使用事件处理程序的sender参数的Parent属性来发现面板:

Control myControl = ((Button)sender).Parent;
private void picture_Click(object sender, EventArgs e)
{
    using (OpenFileDialog dlg = new OpenFileDialog())
    {
        dlg.Title = "Open Image";
        dlg.Filter = "Image files (*.jpg, *.jpeg, *.jpe, *.jfif, *.png) | *.jpg; *.jpeg *.jpe; *.jfif; *.png";
        if (dlg.ShowDialog() == DialogResult.OK)
        {
            ((Button)sender).Add(new Bitmap(dlg.FileName));
        }
     }
 }

这应该可以正常工作。

好了,我更新了代码,希望这次我做对了。

我不确定这个答案是否会帮助你,但也许不是void,你可以返回一些东西,比如整数。

可能存储在一些数据库或其他东西中,比如一个标志。如果这个标志是0,那么你还没有调用这个方法,如果它是1,那么这个方法已经被调用了。

类似:

private int picture_Click(object sender, EventArgs e)
        {
            using (OpenFileDialog dlg = new OpenFileDialog())
            {
                dlg.Title = "Open Image";
                dlg.Filter = "Image files (*.jpg, *.jpeg, *.jpe, *.jfif, *.png) | *.jpg; *.jpeg; *.jpe; *.jfif; *.png";
                if (dlg.ShowDialog() == DialogResult.OK)
                {
                    pict.Add(new Bitmap(dlg.FileName));
                    return 1;
                }
            }
        }

我希望这有帮助!