gpt4 book ai didi

c# - Winforms 中的菜单类似于文件夹资源管理器菜单

转载 作者:行者123 更新时间:2023-11-30 22:40:12 25 4
gpt4 key购买 nike

如何在 winforms 中创建一个菜单,该菜单完全类似于我们浏览任何文件夹时出现在 Windows 资源管理器左手框架上的菜单。菜单包含树节点和根节点,它们通过单击 + 和 - 符号出现和消失。

最佳答案

好吧,那不是菜单,而是 TreeView 。您可以使用 WinForms TreeView ,但开箱即用它看起来与 Explorer TreeView 完全不同。您需要应用资源管理器窗口主题。

你需要P/Invoke来调用SetWindowTheme传递树的窗口句柄,以“explorer”为主题。

将以下代码粘贴到项目中的新类中,编译并使用此自定义控件代替内置的 TreeView 控件。

public class NativeTreeView : System.Windows.Forms.TreeView
{
[DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
private extern static int SetWindowTheme(
IntPtr hWnd,
string pszSubAppName,
string pszSubIdList
);

protected override void CreateHandle()
{
base.CreateHandle();
SetWindowTheme(this.Handle, "explorer", null);
}
}

请注意,此技巧也适用于 ListView 控件。

关于c# - Winforms 中的菜单类似于文件夹资源管理器菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5360525/

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