温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C#多标签的实现方法

发布时间:2021-07-16 01:05:20 来源:亿速云 阅读:198 作者:chen 栏目:编程语言

这篇文章主要介绍“C#多标签的实现方法”,在日常操作中,相信很多人在C#多标签的实现方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#多标签的实现方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

.Net Framework 内置的TabControl容器提供了多标签的界面,自动封装了标签的新建、删除、切换等功能,但是这个控件实在长得难看,所以这里介绍自己制作标签的方法。

首先是用什么控件来做标签,一开始我用Label,但是Label很难看,所以就改用Button。

然后用一个Panel容器来做标签栏,也就是说它是所有标签的父容器。

C#标签的新建:

Button btn1=new Button();   btn1.Width=150;   btn1.Dock=DockStyle.Left;   panel2.Controls.Add(btn1);

这里只设定了宽度,而它的位置、高度都不用设,因为在这里用到了btn1.Dock=DockStyle.Left,这样标签就始终会停靠在panel2的左侧,标签的top就是0,height就是panel2的高度。如果你想要自定义top和height怎么办?可以设一下panel2的Padding属性,比如设为(0,0,5,5),则标签的top就是5,bottom就是panel2的高度-5,width就是panel2的高度-10。

那么,标签的left是多少?因为每一个标签的Dock都是Left,所以标签会自动按顺序从左到右排列,如果中途删除了某个标签,它右边的标签就会自动过来补充,如果插入新的标签,则它会自动挤开右边的标签,这就是Dock属性的好处。

标签按什么顺序排列?按Zorder,即控件显示的前后顺序,如果两个控件有重叠区域,则Zorder较高的控件会遮住另一个。通常后添加的控件Zorder较高。你可以用Control.BringToFront,或Control.SentToBack方法使一个控件处于Zorder的最前面或***面。对于Dock在左边的控件,Zorder高的控件在Zorder低的控件的右边。

每一个标签都会对应一个WebBrowser控件,在新建标签的同时也会新建一个WebBrowser,我们用一个panel3来显示WebBrowser。

WebBrowser wb1=new WebBrowser();   wb1.Dock=DockStyle.Fill;   panel3.Controls.Add(wb1);

这样wb1自动充满整个panel3。

C#标签的切换:

假设原来激活标签的是btn1,现在点击了btn2,两个标签对应的WebBrowser为wb1,wb2,则

panel3.Controls.Add(wb2);   panel3.Controls.Remove(wb1);

就可切换标签。

关键是如何将每个标签与WebBrower绑定,可以使用标签的Tag属性,也可以建立一个标签数组和WebBrower数组,使其中同位置的元素一一对就,两种方法都可以。

C#标签的关闭:

移除标签     panel2.Controls.Remove(btn1);

然后要从panel3移除标签所代表的WebBrowser,同时关闭标签后还要记得激活其它的标签。

***还要调用WebBrowser.Dispose();以释放它占用的资源。

在标签上显示网页的标题:

可以在WebBrowser的DocumentTitleChanged事件中,用btn1.Text=((WebBrowser)sender).DocumentTitle;

到此,关于“C#多标签的实现方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI