gpt4 book ai didi

c# - 保留最后一个上下文菜单项

转载 作者:行者123 更新时间:2023-11-30 23:06:35 24 4
gpt4 key购买 nike

我在菜单中添加了很多项目。在表单上右键单击菜单弹出窗口打开,用户可以向下滚动菜单项。当再次右键单击表单时,它应该保留在用户向上滚动到的相同菜单项位置。

在 VB 6 中,它每次都会保留最后一个位置,但在 C# 中我无法实现它。

最佳答案

这其实很容易实现,你只需要记住滚动位置:

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();

ContextMenuStrip = new ContextMenuStrip();
for (int i = 0; i < 100; i++)
ContextMenuStrip.Items.Add($"Menu {i:00}"); // add some items;

// remember the scroll position upon closing and restore it upon opening menu
var point = Point.Empty;
ContextMenuStrip.VisibleChanged += (s, e) =>
{
if (ContextMenuStrip.Visible)
ContextMenuStrip.AutoScrollOffset = point;
else
point = ContextMenuStrip.AutoScrollOffset;
};
}
}

在这个例子中,我使用了 ContextMenuStrip 的相同实例,所以上面的代码没有做任何有用的事情。但是,如果您动态生成上下文菜单,那么您可能需要记住旧菜单的 AutoScrollOffset 并为新菜单设置它。

关于c# - 保留最后一个上下文菜单项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48075264/

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