首页 新闻 会员 周边 捐助

C# menustrip 菜单太多显示不全 有没有好的办法处理

0
悬赏园豆:5 [已解决问题] 解决于 2023-09-05 14:09

郑英灿的主页 郑英灿 | 初学一级 | 园豆:156
提问于:2022-12-28 09:31

用一个容器装起来

何生有二十六画 1年前

@何生有二十六画: 用pannel容器后,一级菜单多了,就会两边滚动吗,谢 谢

郑英灿 1年前

@郑英灿: 目前我没有测试过,你可以试试,我的目的是让你菜单可以分两行

何生有二十六画 1年前

@何生有二十六画: 用容器没有用,试过了

郑英灿 1年前
< >
分享
最佳答案
0

MenuStrip 菜单项过多时,可能会导致菜单无法完全显示在窗体上,这时可以使用以下两种方法来处理:

  1. 使用 ToolStripDropDown 控件作为子菜单
    MenuStrip 组件中的菜单项可以作为父菜单,而 ToolStripDropDown 控件可以作为子菜单。通过将菜单项的 DropDown 属性设置为 ToolStripDropDown 控件的实例,可以将子菜单放入一个弹出式菜单中,从而解决菜单太多的问题。
    以下是一个示例代码,展示如何使用 ToolStripDropDown 控件创建子菜单:
// 创建一个菜单项
var menuItem = new ToolStripMenuItem("Menu");
// 创建一个 ToolStripDropDown 控件作为子菜单
var subMenu = new ToolStripDropDown();
// 将子菜单添加到菜单项中
menuItem.DropDown = subMenu;
// 添加子菜单项到子菜单中
for (int i = 1; i <= 20; i++)
{
    subMenu.Items.Add($"Sub Menu {i}");
}
// 将菜单项添加到 MenuStrip 控件中
menuStrip1.Items.Add(menuItem);
  1. 使用分割线分组
    另一种方法是使用分割线将菜单项分成几个组,这样可以减少视觉上的拥挤感,并使菜单更易于阅读和使用。
    以下是一个示例代码,展示如何使用分割线分组:
// 添加第一组菜单项
var menuItem1 = new ToolStripMenuItem("Menu 1");
menuStrip1.Items.Add(menuItem1);
menuStrip1.Items.Add(new ToolStripSeparator());
// 添加第二组菜单项
var menuItem2 = new ToolStripMenuItem("Menu 2");
menuStrip1.Items.Add(menuItem2);
menuStrip1.Items.Add(new ToolStripSeparator());
// 添加第三组菜单项
var menuItem3 = new ToolStripMenuItem("Menu 3");
menuStrip1.Items.Add(menuItem3);
menuStrip1.Items.Add(new ToolStripSeparator());
// 添加第四组菜单项
var menuItem4 = new ToolStripMenuItem("Menu 4");
menuStrip1.Items.Add(menuItem4);

以上代码将菜单项分成了四组,并使用分割线将它们隔开。可以根据需要调整分组和分割线的位置和数量,以达到最佳效果。

收获园豆:5
LuoCore | 初学一级 |园豆:122 | 2023-03-31 09:12
其他回答(5)
0

换行可以?

何生有二十六画 | 园豆:141 (初学一级) | 2022-12-28 15:50

不知道如何换行,代码如下,大家可以 测试一下
private void Form1_Load(object sender, EventArgs e)
{
for (int i = 0; i < 100; i++)
{
ToolStripMenuItem tsmi = new ToolStripMenuItem();
tsmi.Text = i+"123";
menuStrip1.Items.Add(tsmi);
}
}

支持(0) 反对(0) 郑英灿 | 园豆:156 (初学一级) | 2022-12-29 15:54
0

Control好像有一个属性是控制当界面无法展示控件的全部时展现滑动条的。
MenuStrip不知道有没有效果。

yuitoTDF | 园豆:216 (菜鸟二级) | 2022-12-29 15:26

好像没有这个功能

支持(0) 反对(0) 郑英灿 | 园豆:156 (初学一级) | 2022-12-29 15:28

@郑英灿: 用的.NET Framework还是.Net?

支持(0) 反对(0) yuitoTDF | 园豆:216 (菜鸟二级) | 2022-12-29 15:31

@yuitoTDF: .NET Framework

支持(0) 反对(0) 郑英灿 | 园豆:156 (初学一级) | 2022-12-29 15:33

想错了..Auto Scroll是窗体的

支持(0) 反对(0) yuitoTDF | 园豆:216 (菜鸟二级) | 2022-12-29 15:41
0

你把所有扫描整理成一个扫描,然后下拉不好吗

猝不及防 | 园豆:2878 (老鸟四级) | 2022-12-30 11:07

以前做了权限设定,和角色 绑在了一起,回不了头了

支持(0) 反对(0) 郑英灿 | 园豆:156 (初学一级) | 2022-12-30 11:10
0

建议改成动态下拉菜单,一样有权限设定,就是多花那一丢丢时间

狼图腾TOP | 园豆:322 (菜鸟二级) | 2022-12-30 11:23

不太明白,我们现在就是动态下拉的

支持(0) 反对(0) 郑英灿 | 园豆:156 (初学一级) | 2023-01-05 13:42
-1

要不就作成一个窗体 上面放 N*N个button,专门用来当菜单用

码农加一 | 园豆:81 (初学一级) | 2023-01-05 13:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册