0

你好

让我解释一下我想做什么。我有一个Form10PictureBoxes的。当我click在其中之一时,我想隐藏除单击的之外的所有其他内容。有可能ClickEvent所有这些都隐藏了其他人。但我要求有效的方式。例如,可能使用来自单击事件的单个函数调用。

4

2 回答 2

0

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

于 2010-05-12T06:55:29.723 回答
0

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

为每个控件创建一个 Tag,然后选择所有 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#,我无法测试它。

于 2010-05-12T07:20:18.330 回答