我有一个Windows Form只包含buttons. 最终目标是制作一个我看到的简单逻辑游戏,但现在的问题是我想在New单击按钮时执行不同的操作,但现在它是buttons表单中所有内容的一部分,因此有时会对他执行操作也不应该发生。为了让自己清楚,我有两个屏幕截图:

所以这就是我想要的样子——我有一个矩阵——3x3(在这种情况下,最后它可以是NxN)。通过单击New,我希望能够做各种事情,其中之一就是将N按钮设置为红色。现在发生的事情是有时我的New按钮也会被绘制,因为我会像这样查看按钮:
foreach (Control c in this.Controls)
{
if (c is Button)
{
...
因此有时也会New被选中,所以我最终得到了这个:

我现在在想的只是在我需要时在代码中执行检查并New明确排除我的按钮,但我认为这不是一个好方法,因为我最终可能会在很多地方用代码做这件事我的程序那么在这种情况下正确的解决方案是什么?如果需要一些代码,请询问。