【问题标题】:How to add already existing ToolStrip Buttons to a ToolStrip Dynamically如何将现有的 ToolStrip 按钮动态添加到 ToolStrip
【发布时间】:2013-06-20 17:51:17
【问题描述】:

我有一个使用 MDI 表单的 Winform 应用程序。在 MDI 表单上,我有一个带有按钮(按钮有图像)的 ToolStrip,用作应用程序的主菜单按钮。因此,当用户单击工具条上的按钮时,该按钮的 mdichild 表单会打开子表单。

所以我有六个按钮,其中的图像已经创建并在项目中。但我希望用户选择他们想要出现在工具条上的按钮。 所以用户打开应用程序,工具条上只有一个按钮。用户单击该按钮,将打开一个子屏幕,显示工具条上所有可用的现有按钮。用户选择他们希望出现在工具条上的按钮,然后单击子屏幕上的保存按钮。

我想要的是,只要用户单击该保存按钮,用户选择的按钮就会自动出现在工具条上。 现在我必须让用户关闭应用程序,然后重新打开它,以便他们选择的按钮出现在工具条上。

如何让按钮自动显示?

【问题讨论】:

    标签: winforms


    【解决方案1】:

    只需创建所有ToolStripButtons,并将每个Visible 属性设置为false。当用户选择显示它们时,将ToolStripButtonVisible 属性更改为true。它们会自动出现在ToolStrip

    我使用 VS2010 和 RemObjects 的 Oxygene(以前称为 AKA Delphi Prism)进行了测试。

    • 启动一个新的 WinForms 应用程序
    • 在窗口上放一个ToolStrip。右键单击它并选择Insert standard items
    • 双击New 按钮(newToolStripButton,左端的那个),并将以下代码添加到newToolStripButton_Click 处理程序:
    // Oxygene 版本:helpToolStripButton.Visible := not helpToolStripButton.Visible; helpToolStripButton.Visible != helpToolStripButton.Visible;
    • 运行应用程序,反复点击newTooStripButton,观察最右边的ToolStripButtonHelp按钮)在ToolStrip中出现和消失。

    【讨论】:

    • 我试过了,但是当我将可见设置为 true 时它没有显示在工具条上
    • 它对我来说很好用。我将编辑以添加我正在使用的步骤。
    【解决方案2】:

    您可以创建任何 ToolStrip 并将其添加到 MenuStrip.DropDownItems.Add。 click EventHandler 必须是 (s,e) 函数。

    ToolStripMenuItem ts = new ToolStripMenuItem();
    ts.Name = $"MyMenuStrip";
    ts.Text = "New MenuStrip";
    ts.Click += new EventHandler(this.ToolStripMenuItem_Click);
    
    private void ToolStripMenuItem_Click(object sender, EventArgs e)
    {
        ToolStripMenuItem clickedMenuItem = sender as ToolStripMenuItem;
        Trace.WriteLine($"Clicked: {clickedMenuItem.Text}");
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多