【发布时间】:2013-01-27 17:44:51
【问题描述】:
我有一个仅包含 buttons 的 Windows Form。最终目标是制作一个我看到的简单逻辑游戏,但现在的问题是我想在点击我的New 按钮时执行不同的操作,但现在它是表单中所有buttons 的一部分,所以有时对他也执行了不应该发生的动作。为了清楚起见,我有两个屏幕截图:
这就是我想要的样子——我有一个矩阵——3x3(在这种情况下,最后它可以是NxN)。通过单击New,我希望能够做各种事情,其中之一就是将N 按钮设置为红色。现在发生的事情是有时我的New 按钮也会被绘制,因为我会像这样浏览按钮:
foreach (Control c in this.Controls)
{
if (c is Button)
{
...
因此有时New 也会被选中,所以我最终得到了这个:
我现在的想法只是在我需要时在代码中执行检查并明确排除我的New 按钮,但我认为这不是一个好方法,因为我最终可能会得到一个代码来做这件事在我程序的很多地方,那么在这种情况下正确的解决方案是什么?如果需要一些代码,请询问。
【问题讨论】:
-
您的按钮与其他按钮的文本是否不同?如果是这样,您可以: if (ctl is Button) { if (ctl.text != "New) ... ?
-
@Andris 这在技术上是可行的,但却是你能做的最不优雅的解决方案。还有很多其他方法可以做到这一点,从而使该过程也可以在其他情况下使用。
标签: c# winforms visual-studio-2010