VB.NET中Panel控件设计技巧
电脑编程技巧与维护
VB.NET中Panel控件设计技巧
张艳平,王香玲,陈震
(丹东东发(集团)股份有限公司,丹东118003)
摘要:主要介绍用VB.NET中用实现类似VB.NET里面工具箱的菜单,并附加了代码.
关键词:VB.NET;Panel控件ThePandControlsaDesignTechniqueintheVB.NET
ZHANGYI唧她,WANG】【i衄ing,CHEN肌(DandongDongfaGroupCO.,LTD.,Dandong118003)
Abstract:ThistextmainlyintroducesmenuofusetheVB.NETrealizationsimilarVB.NETin sidetoolbox,andadditional
code.
Keywords:VB.NET;PanelControl
Panel控件可对控件进行分组以及组织ASP.NET移动网
页的内容.将控件组织在面板中,可提供有关在运行时控件
应如何分页的信息.应用程序会尽可能将一个面板中的所有
控件分页到同一屏幕上.通过将控件分组到Panel控件中,应
用程序还可使用单个命令隐藏或显示一组控件.
Panel控件必须放在Form控件中,另一Panel控件中或
控件模板中.所有其他控件(除StyleSheet控件,DeviceSpe—
cific控件和Form控件以外)必须放在Form或Panel控件中.
除了可包含其他控件外,面板还可包含文本,这些文本环绕
在面板中的其他控件周围.通过设置ForeColor属性指定文本
颜,使用Bold和Italic属性设置文本格式.因为面板中的
控件会继承面板的样式,所以使用Panel控件非常适合将样式
应用于一组控件.
应用程序可为特定设备自定义Panel控件的外观.将De—viceSpecific控件附加到面板,Panel控件就能够使用设备筛选器.设备筛选器使应用程序可以使用属性重写值和控件模板. 1功能
Panel控件用于为其他控件提供可识别的分组.开发Win—dows应用程序时,通常使用Panel控件按功能细分窗体.在窗体设计时,所有控件都可以自由移动,而当移动Panel控件
时,它包含的所有控件也将随着移动.
2属性
Panel控件常用属性及说明如表1所示.
表1Panel控件常用属性及说明
属性说明
AutoScroll此属性指示当控件内容大于它的可见区域时
是否自动显示滚动条
BackColor此属性获取或设置控件的背景Backgroundlmage此属性获取或设置在控件中显示的背景图像BorderStyle此属性指示控件的边框样式
本文收稿日期:2010—02—15
44—
3方法
(1)ToString方法
该方法用于返回此控件的字符串表示形式.
(2)Show方法
该方法主要用于向用户显示控件.
4代码
实现类似VB.NET里面工具箱的菜单的方法的界面设计及
代码.在Form1在窗体加入一个ImageList(其中Name=Im—
ageListl,Images中加入"ArrowUp.gif"和"ArrowDown.gif''), 一
个Panel控件(其中Name=Panel4),在Panel4控件上加入3 个panel控件(name的属性分别为Panel1,Panel2,Panel3, Dock的属性为Top,这一点很重要),在Panel1控件上加入3 个linklabel控件(name分别为Linklabel,Linklabe2,Lin—klabe3,text的属性分别为New,Open,Close),一个Button
控件,一个Caption控件(Text的属性为File)在Panel2控件上加入3个Linklabel控件(Name分别为Linklabe4,Lin—klabe5,Linklabe6,text的属性分别为Play,Pause,Stop),一
个Button控件,一个Caption控件(text的属性为edit),在Panel3控件上加入一个Linklabel控件(Name为Linklabe7, Text的属性为Help),一个Button控件,一个Caption控件(Text的属性为Help),Paint事件实现渐变效果,Button事件实现卷起或展开效果,具体代码如下:
变量定义:
DimPanellExpandedAsBoolean=True DimPanellHeightAsDecimal
DimPanel2ExpandedAsBoolean=True
DimPanel2HeightAsDecimal
DimPanel3ExpandedAsBoolean=True
DimPanel3HeightAsDecimal DimOutlineWidthAsInteger:l DimOutlinePenAsNewPen(Color.SteelBlue,Out- lineWidth)
S0FrW AREDEVELOPMENTANDDESIGN软件开发与设计DimFirstGradientColorAsColor=Color.Purple DimSecondGradientColorAsColor=Color.Thistle PrivateSubForml_Load(ByV alsenderAsSystem.Object, ByValeAsSystem.EventArgs)HandlesMyBase.Load
PanellHeight=Panel1.Height
Panel2Height=Panel2.Height
Panel3Height=Panel3.Height
EndSub
PrivateSubPanell—
Paint(ByV alsenderAsSystem.Ob—
ject,ByV aleAsSystem.Windows.Forms.PaintEventArgs) HandlesPanel1.Paint DimBorderRectAsNewRectangle(0,0,Panel1.widm
1,Panel1.Height一1)
e.Graphics.DrawRectangle(OutlinePen,BorderRect)
e.Dispose0
EndSub
PrivateSubCaptionl_Paint(ByV alsenderAsSystem.
0bject.ByV aleAsSystem.Windows.Forms.PaintEven—tArgs)HandlesCaption1.Pnt DimGradAsNewSystem.Drawing.Drawing2D.Linear- GradientBrush(NewRectangle(0,0,Caption1.Wid
m, Caption1.Height),FirstGradientColor,SecondGradientColor, Drawing2D.LinearGradientMode.Vertical,False)
e.Graphics.FillRectangle(Grad,NewRectangle(1,0, Caption1.Widtll一1,Caption1.Height一1)) DimBorderRectAsNewRectangle(0,0,Panel1.Widtl1
l,Panel1.Height一1)
e.Graphics.DrawRectangle(OutlinePen,BorderRect)
e.Dispose()
EndSub
PrivateSubButtonl_Click(ByV alsenderAsSystem.
Object,ByV aleAsSystem.EventArgs)HandlesButton1. Click
IfPanellExpanded=TreeThen
PanellExpanded=False
Button1.Image=ImageList1.Images(1)
Panel1.Height=Caption1.Height
Else
PanellExpanded=True
Button1.Image=ImageList1.Images(0)
pane
Panel1.Height=PanellHeight
EndIf
EndSub
PrivateSubPanel2_
PaintfByV alsenderAsSystem.Ob_
ject,ByV aleAsSystem.Windows.Forms.PaintEventArgs) HandlesPanel2.Paint DimBorderRectAsNewRectangle(0,0,Panel2.Widtll
1,Panel2.Height—1)
e.Graphics.DrawRectangle(OutlinePen,BorderRect)
e.Dispose0
EndSub
PrivateSubCaption2_Paint(ByV alsenderAsSystem. Obiect.ByV aleAsSystem.Windows.Forms.蹦ntEven- tArgs)HandlesCaption2.Paint DimGradAsNewSystem.Drawing.Drawing2D.Linear- GradientBrush(NewRectangle(0,0,Caption2.WidtIl, Caption2.Height),FirstGradlentColor,SecondGradientColor, Drawing2D.LinearGradientMode.Vertical,False)
e.Graphics.FillRectangle(Grad,NewRectangle(1,0,