DevComponents.DotNetBar2之SuperTabControl使用技巧

关于类似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浏览器开发案例。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值