加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 悬停并单击时更改标签的颜色

发布时间:2020-12-15 23:37:16 所属栏目:百科 来源:网络整理
导读:我有关于改变标签外观的问题.这是截图: 这是你悬停鼠标时的颜色,我希望它像那样. 我想要的是它在我点击它时保持这种颜色.但由于我的鼠标控制,它不会像我想要的那样工作. 这是代码: private void btnArchives_MouseEnter(object sender,EventArgs e) { lblA
我有关于改变标签外观的问题.这是截图:

enter image description here

这是你悬停鼠标时的颜色,我希望它像那样.
我想要的是它在我点击它时保持这种颜色.但由于我的鼠标控制,它不会像我想要的那样工作.

这是代码:

private void btnArchives_MouseEnter(object sender,EventArgs e)
    {
        lblArchives.BackColor = Color.FromArgb(9,18,28); //darkercolor
    }

   private void btnArchives_MouseLeave(object sender,EventArgs e)
   {
       lblArchives.BackColor = Color.FromArgb(15,34,53); //lightercolor
   }

我也试过鼠标悬停.虽然它看起来和鼠标一样.
底线是我希望颜色在悬停在它们上方时变为较暗的颜色,并在悬浮出来时变回较浅的颜色.但是当我点击它时,我也会保持深色.然后转回较浅的颜色然后我点击另一个按钮,其他按钮现在将变为更暗的颜色.谢谢!

编辑:我使用标签而不是按钮.我正在尝试下面的一些评论,非常感谢你.

解决方法

我使用这种技术,只是测试它,我认为它是你想要的.

Label clickedLabel;
    private void mouseEnter(object sender,EventArgs e)
    {
        Label theLabel = (Label)sender;
        if (theLabel != clickedLabel)
            theLabel.BackColor = Color.Red;
    }

    private void mouseLeave(object sender,EventArgs e)
    {
        Label theLabel = (Label)sender;
        if (theLabel != clickedLabel)
            theLabel.BackColor = Color.Yellow;
    }

    private void labelClick(object sender,EventArgs e)
    {
        setColor();//Calling this here so clickedLabel is still the old value
        Label theLabel = (Label)sender;
        clickedLabel = theLabel;
    }

    public void setColor()
    {
        if(clickedLabel != default(Label))
            clickedLabel.BackColor = Color.Yellow;
        //Resetting clicked label because another (or the same) was just clicked.
    }

说明:
这些事件仅设置为标签,因此我们可以执行(标签)发件人,这意味着激活事件的标签.我创建了一个Label clickedLabel变量并将其设置为单击的标签,一旦单击另一个变量,变量将更改并且检查将起作用.

关于这种方法的最好的事情是,你拥有多少标签并不重要,你永远不会将它们仅作为发件人引用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读