【问题标题】:Change button back color after click, and change it back after 2nd click and so on单击后更改按钮背景颜色,并在第二次单击后将其更改回来,依此类推
【发布时间】:2017-03-24 16:46:24
【问题描述】:

大家好,我正在创建 10 个按钮并添加我的面板。其作品。当我再次单击按钮时,我想更改 button.background 颜色,并且我希望转动相同的颜色。你好

  private void Form1_Load(object sender, EventArgs e)
    { for (int i = 0; i < 10; i++)
        {
            Button button = new Button();
            button.Size = new Size(43, 43);
            button.Tag = i;
            button.Click += new EventHandler(ButtonClickOneEvent);
           button.Location = new Point(60, 60 + (i * 50));
          }
            this.panel1.Controls.Add(button);
        }
    }

    void ButtonClickOneEvent(object sender, EventArgs e)
    {
        MouseEventArgs me = (MouseEventArgs)e
        Button button = sender as Button;
        if (button != null)
        {
            switch ((int)button.Tag)
            {
                case 0:
                    if (me.Clicks >= 2)
                    { 
                        button.BackColor = Color.White;
                    }
                    else
                    {
                        button.BackColor = Color.Red;
                    }
                    break;
                case 1:
                    button.BackColor = Color.Red;
                    break;
                case 3:
                    button.BackColor = Color.Red;
                    break;
            }
        }

    }

【问题讨论】:

  • 每次点击是否要在白色和红色背景之间切换?
  • 我想要完全一样的

标签: c# windows visual-studio


【解决方案1】:

如果您想要在每次鼠标点击时更改背景颜色,您可以执行以下操作:

void ButtonClickOneEvent(object sender, EventArgs e)
{
    Button btn = sender as Button;
    if (btn != null)
    {
         btn.BackColor = (btn.BackColor == Color.White) ? Color.Red : Color.White;
    }
}

【讨论】:

  • 我会检查空值。我想如果点击事件曾经为发送者传递了一个空对象,那么应该有一个异常,我什至不确定这会如何发生。
  • @BlakeThingstad 我刚刚检查了null,因为原则上您可以将该方法用于多种事件,而不仅仅是按钮的单击事件。但是,如果在您的代码中您绝对确定它仅适用于按钮的点击事件,那么我想检查是没有用的。 :)
  • 很公平,不像它会妨碍性能或其他任何东西,只是没有它看起来更干净一些
猜你喜欢
  • 1970-01-01
  • 2022-11-13
  • 1970-01-01
  • 2013-03-02
  • 2021-09-05
  • 1970-01-01
  • 2015-01-26
  • 2014-10-09
  • 2017-08-02
相关资源
最近更新 更多