关于类似SuperTabControl的使用如何动态调整其TAB标签的顺序问题,搜了全网也没有找到类似答案,都提到tab键的顺序或者是通过控件界面进行调整其顺序,都不是想要的结果,有个网友问的类似问题但是没有一个答案可用。经过反复测试总结找到一个方法,测试完全可以实现。
浏览器几个固定按钮,我想动态调整新增按钮的位置,始终没有找到解决办法。多次试验找到了解决办法:
private static void change_newbtn_position()
{
try
{//superTabCtl是SuperTabContrl对象(是声明的对象 代码动态添加的)
if(superTabCtl.Tabs.Contains(newbtn))
superTabCtl.Tabs.Remove(newbtn);//newbtn必须 全局变量(存在才能移除)
superTabCtl.Tabs.Insert(superTabCtl.Tabs.Count, newbtn);//最后一个tabs的后面
}
catch { }
}
初始化代码(newbtn为全局对象 ButtonItem)
newbtn = new ButtonItem();//添加一个+按钮(图片)作为新建tab的功能按钮
newbtn.Name = "btn_newtab"; //subbtn_addtab
newbtn.Image = Resources.newr2; //图片
newbtn.Text = "";//新建标签提示文本(按钮)
newbtn.Tooltip = "新建页面";
newbtn.Cursor = Cursors.Hand;
newbtn.ImagePaddingHorizontal = 20;//左右边距
newbtn.ButtonStyle = eButtonStyle.ImageAndText;//默认文本样式 图文
newbtn.ImageFixedSize = new System.Drawing.Size(20, 20);
newbtn.Click += AddTabClick; //点击事件处理(要处理自己的位置 change_newbtn_position)
其他按钮添加到控件集合中(关闭,最小化,最大化,新建按钮)
//superTabCtl.Tabs.Add(win_closeButton);
superTabCtl.Tabs.Add(win_minButton);//最小化按钮(左侧)0
superTabCtl.Tabs.Add(win_maxButton);//最大化按钮1
superTabCtl.Tabs.Add(newbtn); //新建按钮(必须存在才能移除)
//superTabCtl.Tabs.Insert(superTabCtl.Tabs.Count, newbtn);//必须在tabitem_0之后
如果将自定义按钮添加到 ControlBox中(位置最后面那块),鼠标tooltip会无法显示。必须在baseitem(buttonitem\supertabitem)的位置才能显示(鼠标悬停提示文本)
目前上有一个问题待处理,如果页面打开过多,一排显示不了,(页面可以在下拉菜单中正常切换任意页,就是新增按钮不显示了)新建按钮会无法显示,不知道如何判断精准的宽度来处理按钮位置。欢迎交流!
浏览器功能DIY(透明、置顶、字体缩放、各种自定义菜单、二维码、MQTT协议交互。。。)版本100.0.230支持H264视频音频播放。cefsharp浏览器开发案例。