使用C#的GUI出现问题

时间:2009-02-08 11:47:15

标签: c# winforms

在我的应用程序开始时我禁用了一些按钮,并根据某些条件启用了这些按钮。我的问题是,当用户点击按钮然后它执行我的操作时它的颜色变为灰色,当我再次禁用它时。  更多解释:

button.Enabled = false;

如果(条件) {button.enabled = true; }

//用户点击了按钮

//执行按钮的功能

button.Enabled = false; //这里按钮的颜色变成灰色,我不想要这种态度我希望在应用程序开始时启用所有按钮被禁用时它的颜色是qiut simmilar到按钮的背景。那为什么这种颜色?

4 个答案:

答案 0 :(得分:1)

我不完全确定我是否正确地阅读了您的问题,但在我看来,您可能想要这样的事情:

button.Enabled = Condition; // Initial value


// user clicked on button
button.Enabled= false; 
 ... do button's function ...
button.Enabled = Condition

这应该在点击之前恢复按钮的状态,基本上只是在处理过程中禁用它。

答案 1 :(得分:1)

大多数winform控件的禁用状态主要由Win32控件集修复。如果你不喜欢它,那么:

  • 不要实际禁用它 - 只需手动更改颜色,禁用制表位,并在“有点禁用”时忽略点击次数
  • 使用WPF,它具有完全独立的实现,并且不受Win32根
  • 的影响
  • 从头开始编写自己的按钮控件(不要触摸Win32)
  • 使用第三方按钮控件

答案 2 :(得分:0)

禁用按钮后更改颜色

答案 3 :(得分:0)

之前我遇到过与TextBox类似的问题。避免此问题的最佳方法是在禁用Button后重置颜色。

var color = button.BackgroundColor;
button.Enabled = false;
button.BackgroundColor = color;

http://blogs.msdn.com/jaredpar/archive/2007/02/12/readonly-textbox-that-doesn-t-look-funny.aspx