无法将复选框添加到ToolStrip

use*_*316 3 c# controls toolstrip winforms

我想在我的C#winform中添加一些复选框以及标准的工具条控件。toolstrip提供的标准控件没有问题,但是我的复选框有问题。在toolstrip中,第一个控件是combobox(toolstrip组合框),第二个控件是label(toolstrip标签)。到现在为止没有问题。我必须添加两个复选框,然后再添加tollstrip组合框。我正在添加第一个复选框,如下所示

    System.Windows.Forms.CheckBox c1 = new System.Windows.Forms.CheckBox();
    c1.CheckState = System.Windows.Forms.CheckState.Unchecked;
    System.Windows.Forms.ToolStripControlHost host = new   
    System.Windows.Forms.ToolStripControlHost(c1);
    toolStrip1.Items.Add(host);
Run Code Online (Sandbox Code Playgroud)

如果我正在运行应用程序,则可以看到带有工具条的此复选框。保存表单后,所有内容都会丢失。我甚至在cs文件中找不到c1。designer.cs文件中带有host的其他条目。我在这里想念的是什么?如何在工具条中添加这2个复选框?

Mar*_*ard 5

首先

从良好的UI Winforms惯例的角度来看,您应该改用ToolStripButton及其Checked,CheckState和CheckOnClick属性。

现在关于您的问题

我想您已经在设计器文件中编写了此代码?这确实是一个坏主意,因为IDE会覆盖此文件中的更改。隐藏的文件(默认情况下)和警告注释不在此处!

在对InitializeComponent()进行调用之后,应在表单构造函数(New()子)中的代码文件上执行这种操作。

备注您不会在设计器中看到结果,但是它将在运行时显示。如果您需要设计师的支持,那是另一回事,而不是简单的事!