【问题标题】:How to change button color while pressed?按下时如何更改按钮颜色?
【发布时间】:2016-09-10 11:12:52
【问题描述】:

我在表单上有一些按钮。例如按钮 1、按钮 2、按钮 3。我想在按下按钮时更改按钮 1 的颜色,但是一旦我单击按钮 2,按钮 1 的颜色变为默认值,按钮 2 的颜色发生更改。像这样 enter image description here

【问题讨论】:

  • 贴出你试过的代码这么肥。 SO 不是免费的代码提供服务。
  • 所有列出的按钮的点击处理程序的邮政编码。

标签: c# winforms user-interface


【解决方案1】:

使用MouseDownevent 或使用FlatApparence.MouseOverDownColor

【讨论】:

  • FlatApparence.MouseOverDownColor 获胜!
【解决方案2】:

试试这个代码:

    private void button1_Click(object sender, EventArgs e)
    {
        button1.BackColor = Color.Red;
        button2.BackColor = Control.DefaultBackColor;
        button3.BackColor = Control.DefaultBackColor;
    }

    private void button2_Click(object sender, EventArgs e)
    {
        button2.BackColor = Color.Red;
        button1.BackColor = Control.DefaultBackColor;
        button3.BackColor = Control.DefaultBackColor;
    }

    private void button3_Click(object sender, EventArgs e)
    {
        button3.BackColor = Color.Red;
        button2.BackColor = Control.DefaultBackColor;
        button1.BackColor = Control.DefaultBackColor;
    }

【讨论】:

    【解决方案3】:

    将 button1,button2,button3 添加到您的表单中并像这样填写此代码

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
    
    
    
        private void button1_Click(object sender, EventArgs e)
        {
            button1.BackColor = Color.Red;
            button2.BackColor = Control.DefaultBackColor;
            button3.BackColor = Control.DefaultBackColor;
        }
    
        private void button2_Click(object sender, EventArgs e)
        {
            button2.BackColor = Color.Red;
            button1.BackColor = Control.DefaultBackColor;
            button3.BackColor = Control.DefaultBackColor;
        }
    
        private void button3_Click(object sender, EventArgs e)
        {
            button3.BackColor = Color.Red;
            button2.BackColor = Control.DefaultBackColor;
            button1.BackColor = Control.DefaultBackColor;
    
        }
    }
    

    【讨论】:

    • 我发布了同样的答案哥们!
    • 我之前尝试过这样做,但是代码太多,它不能像我想要的那样工作。
    【解决方案4】:

    获取容器放置按钮,如 Group Box 、Panel、Form 等...

    使用按钮单击事件来订阅要更改的按钮。

    private void button_Click(object sender, EventArgs e)
    {
        Button button1=Sender as Button;
        if(button1 != null)
        setcolor(this,button1);
    }
    private static void setcolor(Control Container,Button btnFocus)
        {
            btnFocus.BackColor = Color.Red;
            foreach (Control Btn in Container.Controls)
            {
                if (Btn is Button)
                {
    
                    if (btnFocus != Btn)
                    {
                        Btn.BackColor = Control.DefaultBackColor;
                    }
                }
            }
        }
    

    我希望这对你有用。

    【讨论】:

      猜你喜欢
      • 2019-10-13
      • 1970-01-01
      • 2020-04-20
      • 1970-01-01
      • 2013-07-16
      • 1970-01-01
      • 2020-11-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多