这篇文章主要介绍“C#多标签的实现方法”,在日常操作中,相信很多人在C#多标签的实现方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#多标签的实现方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!.n
这篇文章主要介绍“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#多标签的实现方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!
--结束END--
本文标题: C#多标签的实现方法
本文链接: https://lsjlt.com/news/294573.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0