已经基本实现所需功能(但点开主菜单时,下面的菜单和子菜单栏是全部默认打开的,不知道怎样默认子菜单关闭,不过够用了):
import win.ui;
import godking.vlistEx.listbar2;
import fonts.fontAwesome;
/*DSG{{*/
mainForm = win.form(text="多层折叠菜单";right=1233;bottom=713)
mainForm.add(
custom={cls="static";text="自定义控件";left=276;top=8;right=1225;bottom=706;border=1;db=1;dr=1;dt=1;edge=1;z=2};
splitter={cls="splitter";left=270;top=8;right=275;bottom=706;bgcolor=0;db=1;dt=1;frame=1;z=3};
vlistEx={cls="vlistEx";left=8;top=8;right=269;bottom=706;acceptfiles=1;aw=1;border=1;db=1;dl=1;dt=1;hscroll=1;vscroll=1;z=1}
)
/*}}*/
mainForm.splitter.split( mainForm.vlistEx,mainForm.custom )
//创建图片数据
import godking.paint
import inet.http
var imgs = godking.paint.splitImage("/upload/files/20250201/1738408235.png",10,10,0,0,0,0)
for(i=1;#imgs;1){
    mainForm.vlistEx.addImg(i/*图片名称*/,imgs[i]/*图片文件*/,false/*是否替换*/,/*宽度*/,/*高度*/);
}
//创建实例
var listbar = godking.vlistEx.listbar2(mainForm.vlistEx,{
        menuBkColor = 0x71B33C;         /*菜单背景颜色*/
        menuHoverBkColor = 0xFB3F3C;    /*菜单鼠标划过背景颜色*/
        itemBkColor = 0xFFFFFF;            /*项目背景颜色*/
        itemHoverBkColor = 0xFEE0E0;    /*项目鼠标划过背景颜色*/
        itemHeight = 40;                /*项目高度*/
        lineColorH = 0xDDDDDD;            /*横线颜色*/
        bkcolor = 0xFFFFFF;                /*表格背景颜色*/
        single = -1;     /*菜单单开时默认展开的菜单索引。0是多开全展开。无效索引(如-1)则全不展开。*/
        alwaysOpen = false; 			/*菜单多开时,是否一直展开,不允许关闭*/
        menuFont=::LOGFONT({name="fontAwesome",h=16,color=0xFFFFFF});         /*菜单字体*/
        menuHoverFont=::LOGFONT({name="fontAwesome",h=16,color=0xFFFFFF});    /*菜单鼠标划过字体*/
        itemFont=::LOGFONT({name="fontAwesome",h=16,color=0x000000});        /*项目字体*/
        itemHoverFont=::LOGFONT({name="fontAwesome",h=16,color=0xFF0000});    /*项目鼠标划过字体*/
})
/*设置项目数据{{*/
var t = {
	{0," <img name=95,w=30,h=30> 主菜单1"}
	{1,"  <img name=91,w=30,h=30> 菜单1"}
	{2,"   <img name=72,w=30,h=30> 子菜单1","bx1.1"}
	{2,"   <img name=72,w=30,h=30> 子菜单2","bx1.2"}
	{2,"   <img name=72,w=30,h=30> 子菜单3","bx1.3"}
	{2,"   <img name=72,w=30,h=30> 子菜单4","bx1.4"}
	{2,"   <img name=72,w=30,h=30> 子菜单5","bx1.5"}
	{1,"  <img name=91,w=30,h=30> 菜单2"}
	{2,"   <img name=72,w=30,h=30> 子菜单1","bx2.1"}
	{2,"   <img name=72,w=30,h=30> 子菜单2","bx2.2"}
	{2,"   <img name=72,w=30,h=30> 子菜单3","bx2.3"}
	{1,"  <img name=91,w=30,h=30> 菜单3"}
	{2,"   <img name=72,w=30,h=30> 子菜单1","bx3.1"}
	{2,"   <img name=72,w=30,h=30> 子菜单2","bx3.2"}
	{2,"   <img name=72,w=30,h=30> 子菜单3","bx3.3"}
	{2,"   <img name=72,w=30,h=30> 子菜单4","bx3.4"}
	{0," <img name=95,w=30,h=30> 主菜单2"}
	{1,"  <img name=91,w=30,h=30> 菜单1"}
	{2,"   <img name=72,w=30,h=30> 子菜单1","bx1.1"}
	{2,"   <img name=72,w=30,h=30> 子菜单2","bx1.2"}
	{2,"   <img name=72,w=30,h=30> 子菜单3","bx1.3"}
	{2,"   <img name=72,w=30,h=30> 子菜单4","bx1.4"}
	{2,"   <img name=72,w=30,h=30> 子菜单5","bx1.5"}
	{1,"  <img name=91,w=30,h=30> 菜单2"}
	{2,"   <img name=72,w=30,h=30> 子菜单1","bx2.1"}
	{2,"   <img name=72,w=30,h=30> 子菜单2","bx2.2"}
	{2,"   <img name=72,w=30,h=30> 子菜单3","bx2.3"}
	{1,"  <img name=91,w=30,h=30> 菜单3"}
	{2,"   <img name=72,w=30,h=30> 子菜单1","bx3.1"}
	{2,"   <img name=72,w=30,h=30> 子菜单2","bx3.2"}
	{2,"   <img name=72,w=30,h=30> 子菜单3","bx3.3"}
	{2,"   <img name=72,w=30,h=30> 子菜单4","bx3.4"}
	{0," <img name=95,w=30,h=30> 主菜单3"}
	{1,"  <img name=91,w=30,h=30> 菜单1"}
	{2,"   <img name=72,w=30,h=30> 子菜单1","bx1.1"}
	{2,"   <img name=72,w=30,h=30> 子菜单2","bx1.2"}
	{2,"   <img name=72,w=30,h=30> 子菜单3","bx1.3"}
	{2,"   <img name=72,w=30,h=30> 子菜单4","bx1.4"}
	{2,"   <img name=72,w=30,h=30> 子菜单5","bx1.5"}
	{1,"  <img name=91,w=30,h=30> 菜单2"}
	{2,"   <img name=72,w=30,h=30> 子菜单1","bx2.1"}
	{2,"   <img name=72,w=30,h=30> 子菜单2","bx2.2"}
	{2,"   <img name=72,w=30,h=30> 子菜单3","bx2.3"}
	{1,"  <img name=91,w=30,h=30> 菜单3"}
	{2,"   <img name=72,w=30,h=30> 子菜单1","bx3.1"}
	{2,"   <img name=72,w=30,h=30> 子菜单2","bx3.2"}
	{2,"   <img name=72,w=30,h=30> 子菜单3","bx3.3"}
	{2,"   <img name=72,w=30,h=30> 子菜单4","bx3.4"}
};
/*}}*/
listbar.setItemList(t);
//定义点击事件
listbar.onClick = function(index/*项目索引*/,text/*项目文本*/,data/*附加数据*/){
	var txt = string.replace( text, "  \<.*\> ", "");
    mainForm.text="多层折叠菜单"++txt;
    mainForm.custom.text=txt++data;
}
mainForm.show();
win.loopMessage(); 需要把listbar.aardio的第68行后面作如下改动:
        		if this.itemlist[rrow]["[@treeLevel]"]==0 or this.itemlist[rrow]["[@treeLevel]"]==1{ //菜单,不触发点击事件
        			if this.config.single { //单开
       			    	//先把其他的菜单都隐藏了
        				for(i=1;#this.itemlist;1){
        					if this.itemlist[i]["[@treeLevel]"]==0 or this.itemlist[i]["[@treeLevel]"]==1{
        						if (i!==rrow and this.itemlist[i]["[@treeLevel]"]!==1 and this.itemlist[i]["[@treeLevel]"]!==0){
        							vlist.hideRowAndSubRow( i /*行号*/,true/*是否隐藏*/,false/*是否立即刷新*/);
        						}
        					}
        				}
        				 或直接下载我改好的listbar2.aardio。
																
								
								
上传的附件: