妙用VB.NET窗体实现背景花纹

我们每个都希望程序给我们打来强大的功能,结合我的一些经验和大家分析探讨一下。我们在开发软件过程中,为提高软件的商品化程度,感觉到界面的美观程度是一个软件能否获得成功的一个重要因素,我们仔细研究了一些成功的商品化软件,从这些软件上可以看到,程序窗口背景能显示出非常美丽的、富有立体感的花纹。而采用VVB.NET窗体设计,若只按照系统提供的功能,只能从有限的几种颜色中选择一种颜色或采用程序绘制一些简单的线条。而想实现立体感很强的纹理图案,一般只能采用窗体的PICTURE属性调用位图文件,使用这种方法实现有许多缺点 ,其一是窗体大小受位图大小的限制,调整起来麻烦,不具有通用性和灵活性;其二是浪费资源,因为花纹图案基本上是重复图案,采用与窗体同样大小的位图是一种浪费。

公司主营业务:成都网站设计、做网站、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联公司推出阳信免费做网站回馈大家。

#T#下面介绍一种VB.NET窗体背景花纹实现的方法。在窗体上建立一个网格控件,设定网格行不可见,去掉固定行和固定列,用程序实现网格控件与VB.NET窗体同样大小,并随窗体大小的改变而改变。然后设计一个花纹图案,形成BMP位图文件(本文程序使用文件Pict1.bmp),或者从其它图象中截取一段图案,也可以利用Windows系统提供的图案(如c:\windows\Tiles.bmp),将其调入Picture控件。设定网格的每个单元与该图案大小相同,使单元的数量正好覆盖整个窗体背景,再将所有单元均显示该图案。通过子程序Backpict()实现以上过程,不论图案大小、窗体大小,程序都能自动调整网格控件大小和网格单元大小及单元数量。

该程序在Visual Basic 5.0上调试成功。

1.新建窗体Form1,属性如下:

 
 
  1. Caption =“背景花纹的实现”  
  2. Borderstyle=3(无***、最小化按钮) 

2.建网格控件Grid1,它的位置和大小将在程序中设置(与Form1同样大),属性为:

 
 
  1. Enabled = False(焦点不会落在网格控件Grid1上)  
  2. Fillstyle=1(改变所有单元Text特性)  
  3. Fixedcols=0(无固定行)  
  4. Fixedrows=0(无固定列)  
  5. Gridlines = False(网格行不可见),  
  6. Visible = True 

3.建立图象控件Picture1,程序运行时将背景花纹基本图案放入其中,属性为

 
 
  1. Visible = False(不可见)  
  2. Autosize = True(自动调整大小) 

4.控件中加入Sheridan 3D Controls,选取其中的三维命令按钮SSCommand,建立两个按钮

 
 
  1. SSCommand1.Caption=“退出”  
  2. SSCommand2.Caption=“更换背景”(演示不同的背景图案) 

它们的属性Picture可调用与背景相同或不同的图案,如果使用普通的命令按钮控件Command也可,只是命令按钮无背景图案。

5.建立背景图案形成子程序:

 
 
  1. Dim pictfile As String '位图文件名  
  2. Dim FILEPATH As String '文件路径  
  3. Sub Backpict(pictfile)  
  4. picture1.ScaleMode = 3 
  5. Form1.ScaleMode = 3 
  6. picture1.Picture = LoadPicture(pictfile)  
  7. '网格控件覆盖整个窗体背景  
  8. grid1.Top = -1  
  9. grid1.Left = -1  
  10. grid1.Width = Width  
  11. grid1.Height = Height  
  12. grid1.Cols=Int(Form1.ScaleWidth/picture1.ScaleWidth) + 1  
  13. grid1.Rows=Int(Form1.ScaleHeight/picture1.ScaleHeight) + 1  
  14. '所有单元大小等于基本图案大小  
  15. For i = 0 To grid1.Cols - 1  
  16. For j = 0 To grid1.Rows - 1  
  17. grid1.ColWidth(i) = picture1.ScaleWidth * 15  
  18. grid1.RowHeight(j) = picture1.ScaleHeight * 15  
  19. Next j  
  20. Next I  
  21. '选定所有单元  
  22. grid1.SelStartCol = 0 
  23. grid1.SelStartRow = 0 
  24. grid1grid1.SelEndCol = grid1.Cols - 1  
  25. grid1grid1.SelEndRow = grid1.Rows - 1  
  26. grid1.Picture = Picture1.Picture  
  27. End Sub 

6.窗体主程序

 
 
  1. Private Sub Form_Load()  
  2. Private Sub Form_Load()  
  3. '得到运行程序路径名,路径名后带反斜杠  
  4. If Right(App.Path, 1) <> "\" Then  
  5. filePath = App.Path & "\"  
  6. Else  
  7. filePath = App.Path  
  8. End If  
  9. '窗体初始显示由Tiles.bmp基本图案组成的背景  
  10. pictfile = "c:\windows\Tiles.bmp" 
  11. backpict (pictfile)  
  12. End Sub 

7.退出程序命令按钮

 
 
  1. Private Sub SSCommand1_Click()  
  2. End  
  3. End Sub 

8.演示不同的底纹图案

 
 
  1. Private Sub SSCommand2_Click()  
  2. '两种背景图案交替演示  
  3. If pictfile = filePath & "Pict1.bmp" Then  
  4. pictfile = "c:\windows\Tiles.bmp" 
  5. Else  
  6. pictfile = filePath & "Pict1.bmp"  
  7. End If  
  8. Backpict (pictfile)  
  9. End Sub  

新闻标题:妙用VB.NET窗体实现背景花纹
URL标题:http://www.shufengxianlan.com/qtweb/news37/93987.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联