首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"Pin“控制ToolstripMenu中的项

"Pin“控制ToolstripMenu中的项
EN

Stack Overflow用户
提问于 2014-12-24 09:52:41
回答 1查看 377关注 0票数 3

首先,简要介绍一下我当前的UI是什么样子的:

注意,除了ToolStripControlHost中的内容之外,其他的东西都是标准的WinForms。

简而言之,我想要一些类似于ToolStripControlHost的东西,但我需要将它“固定”在菜单的底部,主要是因为当有很多项时,它不会像其他菜单项那样滚动。

经过一番周旋之后,我得出了这样的结论:也许定制绘画可能是解决问题的方法,但我不知道是否是这样。

下面是一些示例代码,但我不确定它有多有用:

代码语言:javascript
复制
public ToolStripDropDownButtonContainer(ToolStripDropDownButton button)
{
    this.UIControl = button.GetCurrentParent();
    this.Button = button;

    if (this.Button.Tag == null)
    {
        this.Button.Tag = true;

        this.Button.DropDownDirection = ToolStripDropDownDirection.AboveLeft;
        ToolStripDropDownMenu menu = (ToolStripDropDownMenu)this.Button.DropDown;

        menu.SuspendLayout();
        try
        {
            menu.BackColor = Color.White;
            menu.ShowImageMargin = false;
            menu.ShowCheckMargin = false;
            menu.AutoSize = true;
            menu.Margin = Padding.Empty;
            menu.Padding = Padding.Empty;
            menu.GripMargin = Padding.Empty;
            menu.GripStyle = ToolStripGripStyle.Hidden;
            menu.MinimumSize = new Size(310, 0);
            menu.MaximumSize = menu.MinimumSize;
            // TODO pin panel (or some control) to the bottom-side of the menu
        }
        finally
        {
            menu.ResumeLayout();
        }
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-03 16:22:03

我对这个问题的解决方案是完全避免使用普通的菜单控制控制系统,而是让菜单显示一个FlowLayoutPanel,它代替了我的菜单项。

这需要添加一些不同的技巧,以使面板能够很好地与UI一起运行。这种方法的另一个优点是对系统具有更大的灵活性和控制能力。

在不利方面,我注意到当我有一吨子项目时,性能会下降,但我将分别对此进行调查。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27634915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档