如何将PictureBox用作Button

时间:2014-01-04 02:55:41

标签: c# .net winforms button picturebox

我想创建一个轮盘赌游戏,我已经用轮盘赌桌的图像制作了PictureBox

我尝试在属性和代码中设置Visibility = False

pictureBox1.Visible = !pictureBox1.Visible;

但是当我点击隐藏的PictureBox时,没有任何反应。

你知道如何让它发挥作用吗?

我希望通过点击它来使其看不见。

5 个答案:

答案 0 :(得分:1)

一旦将Item的可见性设为false,就不能再单击它。您可以在窗体或容器级别处理click事件,检查鼠标坐标是否包含在PictureBox的边界中,并使用它来使其再次可见。

//Common eventhandler assigned to all of your PictureBox.Click Events
private void pictureBox_Click(object sender, EventArgs e)
{
    ((PictureBox)sender).Visible = false;
}

private void Form1_Click(object sender, EventArgs e)
{
    foreach (var item in this.Controls) // or whatever your container control is
    {
        if(item is PictureBox)
        {
            PictureBox pb = (PictureBox)item;
            if (pb.Bounds.Contains(PointToClient( MousePosition)))
            {
                pb.Visible = true;
            }
        }
    }
}

答案 1 :(得分:1)

你的逻辑问题是,一旦PictureBox变得不可见,你再也不能再点击它,因为它不再在表格上,而你可以肯定点击它留下的空白区域,你“仍然没有点击它。

一种可能性是,而不是使可见/不可见,放置/删除其背景图片,所以它似乎已经消失但实际上它仍然存在,仍然能够接收点击并响应事件。

答案 2 :(得分:0)

如果你想让pictureBox1不可见,你可以写pictureBox1.Visible = false;

编辑:你在做什么应该工作。我创建了一个winform并在其中放了一个图片框。我双击图片框以生成Click事件处理程序并键入pictureBox1.Visible = !pictureBox1.Visible;。当我调试程序并单击图片框时,它变为不可见。我想不出为什么它不适合你。

编辑:我明白你现在想要什么。当它不可见时,在点击它时可以看到它。不幸的是我不知道该怎么做。

答案 3 :(得分:0)

一种可能愚蠢而又简单的方法可能是将一个图片框放在另一个上面。 pictureBox1将是你的照片,pictureBox2将没有图片。然后你可以做这样的事情:

    private void pictureBox1_Click(object sender, EventArgs e)
    {
        pictureBox1.Visible = false;
        pictureBox2.Visible = true;
    }

    private void pictureBox2_Click(object sender, EventArgs e)
    {
        pictureBox1.Visible = true;
        pictureBox2.Visible = false;
    }

答案 4 :(得分:0)

您可以将每个PictureBox控件放在Panel控件中。然后处理Panel和PictureBox的Click事件。

private void panel1_Click(object sender, EventArgs e)
{
    pictureBox1.Visible = true;
}

private void pictureBox1_Click(object sender, EventArgs e)
{
    pictureBox1.Visible = false;
}