C# 公共静态元素自动更改

C# 公共静态元素自动更改,c#,visual-studio,C#,Visual Studio,首先。对不起,我的英语不好。我是visual studio和c#的新手。我通常用java编写代码。我试图使简单的windows窗体成为一个项目。然后我在里面放了一个文本框。我把文本框从public(自动生成)改为public static。但是,当我看到设计视图版本时,如果双击该文本框,它将再次公开。如果我仍然希望文本框保持静态而不进行手动更改,该怎么办 Windows窗体控件必须是实例成员,而不是静态成员,才能正常工作。这就是为什么设计师要强制移除静电干扰 我假设您希望在应用程序中的其他位置共

首先。对不起,我的英语不好。我是visual studio和c#的新手。我通常用java编写代码。我试图使简单的windows窗体成为一个项目。然后我在里面放了一个文本框。我把文本框从public(自动生成)改为public static。但是,当我看到设计视图版本时,如果双击该文本框,它将再次公开。如果我仍然希望文本框保持静态而不进行手动更改,该怎么办

Windows窗体控件必须是实例成员,而不是静态成员,才能正常工作。这就是为什么设计师要强制移除静电干扰


我假设您希望在应用程序中的其他位置共享该值,如果您要使用传统的Windows窗体,而不是像WPF或UWP这样更现代、更受支持的东西,我强烈建议您使用该模式。

您不希望窗体元素是静态的,因为它们应该属于窗体的特定实例化。为什么您如此坚持将其更改为静态?我希望您不打算从其他窗体或其他类执行此操作:
var text=Form1.textbox1.text
。因为即使VisualStudio将其单独保留并没有将其更改回实例字段,您也会得到一个空引用异常。或者,如果你按照答案的建议去做。或者我希望您不打算在我的团队中这样做。您不应该在Java中使表单字段成为静态的,在.net中也不应该。