【问题标题】:Why is my button.enabled not showing as true in my code?为什么我的 button.enabled 在我的代码中没有显示为 true?
【发布时间】:2016-07-18 22:13:21
【问题描述】:

我在将myButton1.Enabled 的值更改为true 时遇到了这个问题。我将使用该按钮启用的值将myButton2.Enabled 设置为与myButton1.Enabled 相同的值。

public void MyMethod()
{
    myButton1.Enabled = true;
    myButton2.Enabled = myButton1.Enabled;
}

当我使用调试器逐步执行代码时,myButton1.Enabled 不会更改为 true,因此 myButton2.Enabled 不会更改为 true,但是当 MyMethod() 完成时,myButton1 已启用并且我可以单击它,但 myButton2 未启用。我只是想知道是否有人知道为什么会发生这种情况,因为从逻辑上讲它应该可以工作。

只是为了澄清我并不是在寻找解决方法,因为我已经有了它,我只想知道为什么这不起作用以及任何解决方法。

谢谢!

【问题讨论】:

  • 您使用的是哪种 Visual Studio?和你的操作系统?因为您的代码在我的系统中完美运行(Win10 VS2015)。只需 2 个按钮即可清理项目。
  • 需要重绘或刷新?我相信它需要是一个事件,所以更新是正确的
  • @x... 我有 Windows 7 并且正在使用 VS2010。这是一个中等规模的项目,不值得我花时间为这么小的东西创建一个干净的项目。但正如我所说,我只是想了解为什么myButton1.Enabled = true; 这一行没有将按钮的启用属性从false 设置为true。感谢回复
  • @kurakura88 我已经尝试将两者都放在两条线之间,但都没有成功。感谢回复

标签: c# button boolean


【解决方案1】:

检查按钮的属性。如果你的enabled在你的属性中被放到false,即使你写了myButton1.Enabled = true;,它仍然是false

【讨论】:

  • Enabled 在属性中设置为false,所以我将其更改为true,它仍然表现相同。感谢回复
  • 你确定调试点正确吗?当我测试它时,我没有问题。尝试将这一点放在 myButton1.Enabled = true 上并从那里进入。
【解决方案2】:

尝试将Application.DoEvents(); 放在两者之间,看看是否会发生变化。

【讨论】:

  • 我试过了,它没有改变任何东西。感谢回复
  • 永远不要建议Application.DoEvents()。这从来都不是一个好的答案。
猜你喜欢
  • 2021-01-03
  • 1970-01-01
  • 1970-01-01
  • 2016-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多