除了单击之外,隐藏多个PictureBox

时间:2010-05-12 06:41:34

标签: c# picturebox

HI

让我解释一下我想做什么。 我有一个Form,上面有10个PictureBoxes。 当我在其中一个click时,我想要隐藏所有其他的,除了点击的一个。 有可能在ClickEvent中所有人都隐藏了其他人。但我要求有效的方式。例如,点击事件可能会发出单个函数调用。

2 个答案:

答案 0 :(得分:0)

只需编写一个接受Object的函数。在该函数中,您可以遍历所有这些图片框并将其与Object进行比较。如果它是发件人对象你不隐藏,否则你会。

答案 1 :(得分:0)

我没有在此计算机上安装.net,但这是我的解决方案。

为每个控件创建一个标签,然后选择所有10个图片框并为它们创建一个点击事件。

在点击事件中,您可以使用此代码循环浏览所有控件,只隐藏图片框。

foreach (Control ctrl in Form1.Controls)
{
    if (ctrl.GetType() == typeof(PictureBox))
    { 
        if (((PictureBox)ctrl).Tag == ((PictureBox)sender).Tag)
        {
            ctrl.Hide();
        }
        else
        {
            ctrl.Show();
        }
    }
}

您可以比较没有标签的对象,但如果没有安装c#,我就无法测试。