【问题标题】:C# MetroTile backcolor/forecolor not changing during mouse enter/leaveC# MetroTile 背景色/前色在鼠标进入/离开期间不改变
【发布时间】:2016-09-15 19:42:40
【问题描述】:

我在 VS 2015 中使用 Win Form Metro 框架在 Windows 7 中使用 Metro Tiles 构建 Metro Form。当鼠标进入 Metro Tile 时,我希望改变背景色和前景色,当鼠标离开时,改变回来.但是,它不起作用。什么也没发生,我不知道我做错了什么。

在 Form1.cs(Design) 文件中,我将所有图块的以下属性设置为:

BackColor = White
ForeColor = Black
Name = caseCompassDevo
CustomBackground = True
CustomForeColor = True 

在 Form1.Designer.cs 文件中,我在 InitializeComponent() 方法中有以下代码:

// caseCompassDevo
        // 
        this.caseCompassDevo.BackColor = System.Drawing.Color.White;
        this.caseCompassDevo.CustomBackground = true;
        this.caseCompassDevo.CustomForeColor = true;
        this.caseCompassDevo.ForeColor = System.Drawing.Color.Black;
        this.caseCompassDevo.Location = new System.Drawing.Point(23, 92);
        this.caseCompassDevo.Name = "caseCompassDevo";
        this.caseCompassDevo.Size = new System.Drawing.Size(149, 87);
        this.caseCompassDevo.TabIndex = 0;
        this.caseCompassDevo.Text = "Case Compass DEVO";
        this.caseCompassDevo.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
        this.caseCompassDevo.Click += new System.EventHandler(this.caseCompassDevo_Click);
        this.caseCompassDevo.MouseEnter += new System.EventHandler(this.caseCompassDevo_MouseEnter);
        this.caseCompassDevo.MouseLeave += new System.EventHandler(this.caseCompassDevo_MouseLeave);
//

在我的 Form1.cs 文件中,我添加了以下事件:

namespace Links
{
    public partial class Form1 : MetroFramework.Forms.MetroForm
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void caseCompassDevo_MouseEnter(object sender, EventArgs e)
        {
            BackColor = System.Drawing.Color.FromArgb(0, 174, 219); //MetroUI blue
            ForeColor = System.Drawing.Color.FromArgb(255, 255, 255); //white
        }

        private void caseCompassDevo_MouseLeave(object sender, EventArgs e)
        {
            BackColor = System.Drawing.Color.FromArgb(255, 255, 255); //white
            ForeColor = System.Drawing.Color.FromArgb(0, 0, 0);  //black
        }       

        private void caseCompassDevo_Click(object sender, EventArgs e)
        {

        }

        //private void caseCompassTest_MouseHover(object sender, EventArgs e)
        //{
        //}
    }
}

【问题讨论】:

  • 您确定将颜色应用到瓷砖上。看起来你将它应用到它自己的表单上。你不能试试 caseCompassDevo.BackColor = Color.Green;
  • @TimonPost 它被应用到 caseCompassDevo MetroFramework.Controls.MetroTile 属性
  • @TimonPost - 我错过了你答案的最后一部分。那行得通。谢谢!

标签: c# winforms


【解决方案1】:

您应该将其应用于您的caseCompassDevo。使用 caseCompassDevo 的 BackColor 属性并为其分配适当的颜色。

【讨论】:

    猜你喜欢
    • 2019-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多