基于布尔值更新GUI

时间:2012-08-06 20:34:03

标签: c++ visual-studio-2008 c++-cli

根据程序中布尔值的状态,尝试使某些按钮/文本字段变灰。布尔值会跟踪与子系统的连接是否仍然存在。初始化为false,直到它连接,然后看门狗从那里保持更新。

这可能会通过执行程序多次发生,因此我想制作某种监视器,只监视布尔状态并根据需要更新GUI /按钮属性。

我最初的想法是为此制作某种事件处理程序,但在我的搜索中,我在C#中发现了一些名为“属性”的东西,这可能会使这更容易。不幸的是,我无法找到关于这种技术的大量信息(这里的初始线程:How to trigger event when a variable's value is changed?

所以我来找你们的人,希望你们能够让我知道最好的方法。

谢谢,

编辑::不确定是否重要,但布尔值被声明为extern。这可能会使事情变得更容易,因为我注意到在很多情况下,在类之间进行通信时会使用观察者模式,这不是这个问题的关注点。

2 个答案:

答案 0 :(得分:1)

C#属性只提供获取/设置对象变量的专用语法。由于它们只是专门的方法,您可以真正添加您想要的任何其他功能。根据你所描述的内容,我可能会建议使用一个监听器...动作监听器使用一种称为“观察者”的模式,这种模式完全适合你在这种情况下尝试做的事情。您可以使用Google“观察者模式”,并获得有关如何使用它的更多信息,并创建自己的变体,您可能会或可能不会这样做:)

祝你好运!

答案 1 :(得分:0)

让我举个简单的例子:

button1.IsEnabled = false;

要禁用按钮或文本字段,您只需执行此操作。