gpt4 book ai didi

c# - "Pin"控制ToolstripMenu中的项目

转载 作者:行者123 更新时间:2023-11-30 16:09:26 24 4
gpt4 key购买 nike

首先,简要概述一下我当前的用户界面:

Current UI

请注意,除了 ToolStripControlHost 中的内容外,其他所有内容都是标准的 WinForms。

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

经过一番搜索后,我得出的结论是,也许自定义绘画可能是解决方案,但我不知道情况是否如此。

这是一些示例代码,但我不确定它的用处:

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();
}
}
}

最佳答案

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

这涉及到必须添加一些不同的技巧才能使面板与 UI 完美配合。这种方法的额外优势是更加灵活和对系统的控制。

不利的一面是,当我有大量子项时,我注意到性能会下降,但我会单独调查这个问题。

关于c# - "Pin"控制ToolstripMenu中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27634915/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com