为什么我的禁用按钮会改变颜色?

时间:2009-03-02 07:56:42

标签: c# winforms

我的问题是:当我的应用程序打开时,我会禁用所有按钮(在form_Load中),并且它们的颜色会更改为背景颜色。但后来我做了一些动作(比如点击按钮),在这个动作中我再次禁用按钮。

现在其中一些按钮变为灰色,其他按钮变为背景。

这是为什么?我不想要灰色效果。通常当我在应用程序开始时禁用按钮时,它会变成我期望的颜色,但是当我再次尝试禁用它时,会出现这种奇怪的行为。怎么办?

我的代码就像:

private void _btnDownload2PC_Click(object sender, EventArgs e)
{
    // do action 
    _btnDownloadToPC.Enabled=false; // its color became gray
    _btnDownloadToPhone.Enabled=false; // its color became like the 
                                       // background color and it can't 
                                       // be pressed 
} 

我发现问题出在我使用button_MouseLeave()button_MouseMove()函数时。例如:

private void _btnOneToCort_MouseLeave(object sender, EventArgs e)
{
    this._btnOneToCart.Image=global::MyProject.Properties.Resources.button3over;
}

但这没有意义。为什么这个功能会改变我的按钮设置(我不知道这些是什么)当我使用这些功能时会出现这种奇怪的行为,但是当我不这样做时,一切都正常了?

2 个答案:

答案 0 :(得分:0)

为什么不禁用设计师中的按钮?如果不可接受,请在表单构造函数中执行,而不是Form_Load。

另外,如果它被禁用,你怎么能点击按钮?

表单颜色设置是否默认?你有没有改变Windows主题颜色偏好?

答案 1 :(得分:0)

您可以以编程方式访问按钮的颜色。设置断点并执行此操作以查看它们是否确实在发生变化。

我的猜测:您设置的图像的灰色背景与标准禁用的颜色不同。您需要编辑图像并删除背景。