我正在使用C#
在Visual Studio 2013中编写一个Windows窗体程序该程序是一个记忆游戏,人们可以看到哪些图片在哪个方块中,但是一旦他们点击第一张图片,所有图片都被隐藏,所以他们必须尝试记住每张图片所在的位置
我有一个tablelayoutpanel,里面有一个pictureBox网格。
有些正方形内部有随机图像,而其他正方形只有黑色正方形
我希望在单击一个图像时隐藏(或隐藏)所有非黑色图像。 我仍然希望在隐藏的'上点击活动。图像。
我试过过pictureBox.visible = false;但很明显,如果图片不可见,则不再接受点击事件。
我试图将pictureBox.ForeColor设置为Color.Gray,但这要么不起作用,要么前面的颜色在图像后面。我尝试了control.BringToFront(),但我想我使用了错误的控件,因为我的颜色没有在图像前面移动。
是否有办法让图片显示为隐藏状态并仍然响应鼠标点击,或者是否有办法在图像上显示颜色,以便图像仍在那里,但在某些颜色后面。
无论哪种方式都没问题。
答案 0 :(得分:4)
你无法拥有隐藏/不可见和可点击的东西。
这样做的一种方法是用空白图像替换真实图像。这可能与背景颜色相同,使其看起来像真实的图像已经消失。
设置图片框的ForeColor
对图像无效。
另一种方法可能是将图像的不透明度设置为非常小的正值,以使图像不完全透明。这应该仍然是可点击的,但如果用户摆弄显示器亮度/对比度,它可能仍然可见。
答案 1 :(得分:0)
@ ChrisF的回答是正确的。
我想说的是hidden
被称为它是什么,因为它在视图中是隐藏的,因此用户不会与它交互。从窗口隐藏元素的主要目的是阻止用户知道元素是否存在。
因此,最好的解决方案是添加透明图像或空白图像并使其可点击。