【问题标题】:Setting modifier "public: static" in visual c++在 Visual C++ 中设置修饰符“public:static”
【发布时间】:2024-08-06 00:50:02
【问题描述】:

首先,如果这是一个“愚蠢”的问题,我深表歉意。我进行了广泛的搜索,但找不到答案,但这似乎应该相当简单。

我有一个 Windows 窗体应用程序,它有一些我想将修饰符设置为 public:static 的控件。这不是设计者视图中的选项(它具有公共、公共保护等)。我去代码里改一下,比如,

public: System::Windows::Forms::ProgressBar^ progressBar1;

public: static System::Windows::Forms::ProgressBar^ progressBar1;

但如果我在设计器视图中修改任何内容,“public”修饰符会覆盖我对代码所做的更改。继续返回代码并在需要时对其进行更改很容易,但这非常耗时。

这似乎不是需要展示大量代码的问题,但如果您想查看我的任何代码,请提出,我会很乐意发布。

提前感谢您的帮助。

【问题讨论】:

  • 我不太确定,但 static 并不是真正的访问修饰符,因此您可能希望在设计器的其他位置搜索可以将其指定为 static 的字段。
  • 它是一个窗口中的控件。为什么你希望它是静态的?
  • 绝对没有理由将控件设为静态。也许你可以描述你原来的问题,你为什么需要这个。
  • @silvesthu:它是一个用于曾经是控制台应用程序的 gui。我希望能够从我的主要功能中更新它,除非它设置为 public: static (据我所知),否则这是不可能的。我知道这被认为是非常糟糕的设计,但我不知道在不花费六个月重构整个代码的情况下可以做我需要做的事情的另一种方法。我对 GUI 设计真的很陌生,所以我可能做错了各种各样的事情。我已经在控制台应用程序上工作了几年,但才刚刚开始为它构建 GUI。
  • @BZ1 '不可能,除非它设置为 public: static',我认为这个位是错误的。您在某处创建此类的对象(如果您愿意,该对象可以是静态的)并使用该对象访问进度条。

标签: c++ visual-studio-2010 static c++-cli modifiers


【解决方案1】:

所以事实证明,将控件本身设置为静态是不可取的,并且可能没有办法阻止 VS 从代码中删除“静态”。我找到了一个解决我的问题的解决方案(我想从另一个函数访问/修改表单的控件) 这里:

http://social.msdn.microsoft.com/forums/en-US/Vsexpressvc/thread/dcc8228d-6937-450d-b4e2-e833fb1f388b/

【讨论】: