C#将复选框设置为静态

本文关键字:静态 设置 复选框 | 更新日期: 2023-09-27 17:57:37

我为windows窗体创建了一个复选框,如何将其设置为静态?

public static CheckBox checkthis;

这段代码创建了一个新的静态,我想做的是将我在设计器中创建的一个设置为静态。

更新:

我尝试了下面的答案,它起了作用,尽管复选框从表格中消失了,各种其他问题也出现了。相反,我创建了一个新的,并这样做了:

public static CheckBox checkthisnew;
...
checkthisnew = checkthis;

不管怎样,我现在意识到我失败了,我可以使用事件列表上更改的状态,所以一切都很好。。。

很抱歉没有让我更清楚地解释这背后的原因,但我非常感谢你的回答,谢谢你。

C#将复选框设置为静态

在复选框声明所在的位置编辑MyForm.Designer.cs文件。请注意,如果您使用设计器再次修改UI,您的更改将被还原,因此您必须再次执行此操作。

使依赖的UI控件成为静态控件不会带来任何好处。使组件静态是一回事,这可能没问题,但对于像CheckBox这样的东西,你只是在找麻烦。对于初学者来说,单个控件只能有一个父控件。因此,你不能只创建一个控件实例,然后期望能够将其添加到多个表单中,这样一切都会神奇地看起来同步。如果您需要共享一些值,请以正确的方式执行并绑定到它们,注册一些事件,共享,而不是持有该值的控件,或其他类似方法。

我也不建议您修改生成的文件(尤其是如果它是从您一直使用的工具生成的)。如果必须坚持将控件设为静态,请在类的源文件中声明它,而不是在设计器生成的文件中声明,因为类被声明为partial是有原因的。

您可能正在尝试共享CheckBox所代表的某个bool值。使成为一个静态属性。

public partial class MyForm : Form
{
    public static bool IsToggled { get; set; }
}

如果您想将其与某个事件或其他事件联系起来,您可以随时更改访问器的实现。

嗯。。。如果没有更多上下文,我建议使用公共布尔属性。让UI项是静态的不是一个好主意。

试试这样的东西:

public class MyForm : Form
{
    public static bool IsWhateverSet {get; private set;}
}