【问题标题】:Problem inserting a checkbox into a toolstrip in winforms在winforms中将复选框插入工具条时出现问题
【发布时间】:2019-09-16 15:33:11
【问题描述】:

[带有虚假条目的下拉列表][2]我几年前在 Visual Studio 2010 中创建了一个应用程序。它在应用程序的许多工具条中广泛使用了一个复选框。它们都能完美运行。

我最近开始使用旧应用程序中的大部分代码在 WS 2019 中创建一个新应用程序。除了工具条中的复选框外,一切正常。当我尝试将复选框插入任何表单工具条时,复选框不在下拉列表中。此外,列表中有一个名为 crtoolstriptectbox 的虚假项目,它出现在预期复选框项目的分隔符下方。这个虚假条目实际上可以插入一个文本框(这是不想要的)。

应该在任何工具条中插入复选框的类没有。但是,如果我创建一个新的测试解决方案并在类中复制,然后在测试表单中插入一个工具条,它可以完美运行,并且不会出现虚假的 crtoolstriptectbox。

我已经搜索了整个应用程序以寻找虚假项目的实例,但没有任何结果。我尝试创建一个新解决方案并从非工作版本复制所有文件,但结果是相同的。虚假条目出现在下拉列表中,复选框不出现。我无法在任何形式的工具条中创建复选框。

这是我正在使用的代码...

我已经搜索了整个应用程序以寻找虚假项目的实例,但没有任何结果。我尝试创建一个新解决方案并从非工作版本复制所有文件,但结果是相同的。虚假条目出现在下拉列表中,复选框不出现。我无法在任何形式的工具条中创建复选框。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Windows.Forms.Design;
using System.Drawing;
namespace tt
{
    [System.ComponentModel.DesignerCategory("code")]

    [ToolStripItemDesignerAvailability(ToolStripItemDesignerAvailability.ToolStrip)]
    // [ToolboxBitmap(@"..\..\Images\CheckBox.bmp")]
    public class ToolStripCheckBox : ToolStripControlHost
    {

        public ToolStripCheckBox()
            : base(new CheckBox())
        { }

        public CheckBox checkBoxControl
        {
            get
            {
                return Control as CheckBox;
            }
        }

        public bool isChecked
        {
            get
            {
                return checkBoxControl.Checked;
            }
            set
            {
                checkBoxControl.Checked = value;
            }
        }

        protected override void OnSubscribeControlEvents(Control c)
        {
            // Call the base so the base events are connected.

            base.OnSubscribeControlEvents(c);

            // Cast the control to a MonthCalendar control.

            CheckBox CheckBoxControl = (CheckBox)c;

            // Add the event.

            CheckBoxControl.CheckedChanged += new EventHandler(OnCheckedChanged);
        }

        protected override void OnUnsubscribeControlEvents(Control c)
        {
            // Call the base method so the basic events are unsubscribed.

            base.OnUnsubscribeControlEvents(c);

            // Cast the control to a MonthCalendar control.

            CheckBox CheckBoxControl = (CheckBox)c;

【问题讨论】:

  • 一张图片真的很有帮助,我们无法根据这些信息回答这个问题 - 你需要缩小范围
  • 我找不到在这里添加图片
  • 当你edit你的问题时,有一个按钮工具条,带有相机图标的按钮
  • 我尝试通过拖放来包含图像,然后转到以下“无法提交您的编辑。请看上面的错误,但上面没有错误。
  • 下拉列表长这样...

标签: c# checkbox


【解决方案1】:

我解决了这个问题。我正在工具条中实现复选框的使用,而从原始应用程序带来的解决方案中仍然存在许多错误。因此,当时新的应用程序不会编译。 因此,我正在运行一个失败的构建(我知道它会失败)。我假设管理所需复选框的创建并将其添加到工具条中的类只会像所有文件在编译中所做的那样“保存”,一切都会好起来的。 当我清理解决方案中的 50 个左右的错误时,我发现了结果。然后我能够成功运行编译,并且“嘿,presto”系统完全按照要求工作。工具条上的下拉列表现在显示“复选框”,单击它会正确安装一个复选框。 感谢那些回答这个问题的人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-21
    • 2023-03-18
    • 1970-01-01
    • 2020-11-30
    • 2021-02-19
    • 2011-03-30
    • 2012-10-05
    相关资源
    最近更新 更多