设为首页收藏本站language 语言切换
查看: 2478|回复: 0
收起左侧

VB.NET编程之透明窗体篇

[复制链接]
发表于 2010-2-25 10:25:11 | 显示全部楼层 |阅读模式
<p >虽然VB.NET和VB在语法上有很多相同之处,但从根本上说,VB.NET不仅仅是VB的另外一个升级版本,而是一个全新的语言。VB.NET全面支持面向对象,在VB.NET中哪怕是一个字符串,你也都可以把它看成是一个对象,一个实例,也有自己的属性和方法。同样VB.NET中程序窗体(Form)也是一个实例,它是由命名空间“System.Windows.Forms”中的“Form”类通过构造函数而成的一个实例。下面试着用VB.NET来编写与窗体相关的程序。<p ><center><font color="#000099"><strong>利用VB.NET来定制窗体的透明度</strong></font></center><p >在下面介绍的程序中,将通过调整TrackBar组件的数值来调整窗体的透明程度。定制透明的窗体,如果要用其他语言来实现,一定是件很复杂的工作,但对于VB.NET来说,则是一件非常简单的事情,这是因为在.Net FrameWork SDK的“Form”类中,提供了一个可以设定窗体透明度的属性“Opacity”,当“Opacity”属性值为“1”,说明窗体不透明,当“Opacity”为“0”,则窗体完全透明。<p >构造整个程序的主要思路就是:首先要继承一个Form对象,程序中名称为Form1,然后创建一个TrackBar组件和一个Label组件,并进行初始化,Label组件的名称为Label1,主要是显示当前窗体的透明度数值。接着定义各组件相关事件,程序中只有一个TrackBar1的“Scroll”事件,并在Form1中加入这些可视组件,这样组件才能显示出来。最后提供VB.NET的程序入口函数“Main”来运行这个程序。下面在VB.NET中通过TrackBar1来定制窗体透明度的完整程序代码(Form.vb):<p ><ccid_nobr><table align="center" border="1" bordercolordark="#FFFFFF" bordercolorlight="black" cellpadding="2" cellspacing="0" width="550"><tr><td bgcolor="e6e6e6" class="code"><pre><ccid_code>Imports System.DrawingImports System.Windows.FormsImports System.ComponentModel'继承得到一个窗体Public Class Form1    Inherits System.Windows.Forms.Form#Region &amp;quot; Windows 窗体设计器生成的代码 &amp;quot;    Public Sub New ( )        MyBase.New ( )        '该调用是 Windows 窗体设计器所必需的。        InitializeComponent ( )        '在 InitializeComponent ( ) 调用之后添加任何初始化    End Sub    '窗体重写处置以清理组件列表。    Protected Overloads Overrides Sub Dispose ( ByVal disposing As Boolean )        If disposing Then            If Not  ( components Is Nothing ) Then                components.Dispose ( )            End If        End If        MyBase.Dispose ( disposing )    End Sub    '创建Windows 窗体中的各种组件    Private components As System.ComponentModel.IContainer    '注意:以下过程是 Windows 窗体设计器所必需的    '可以使用 Windows 窗体设计器修改此过程。    '不要使用代码编辑器修改它。    Friend WithEvents TrackBar1 As System.Windows.Forms.TrackBar    Friend WithEvents Label1 As System.Windows.Forms.Label    Friend WithEvents Label2 As System.Windows.Forms.Label    '初始化各种组件,并定义相关的事件    Private Sub InitializeComponent ( )        Me.TrackBar1 = New System.Windows.Forms.TrackBar ( )        Me.Label1 = New System.Windows.Forms.Label ( )        Me.Label2 = New System.Windows.Forms.Label ( )        CType ( Me.TrackBar1 , System.ComponentModel.        ISupportInitialize ).BeginInit ( )        Me.SuspendLayout ( )        Me.TrackBar1.Location = New System.Drawing.Point ( 12 , 48 )        Me.TrackBar1.Maximum = 100        Me.TrackBar1.Name = &amp;quot;TrackBar1&amp;quot;        Me.TrackBar1.Size = New System.Drawing.Size ( 258 , 42 )        Me.TrackBar1.TabIndex = 1        Me.Label1.Location = New System.Drawing.Point ( 144 , 104 )        Me.Label1.Name = &amp;quot;Label1&amp;quot;        Me.Label1.Size = New System.Drawing.Size ( 66 , 24 )        Me.Label1.TabIndex = 2        Me.Label1.Text = &amp;quot;1&amp;quot;        Me.Label2.Location = New System.Drawing.Point ( 62 , 104 )        Me.Label2.Name = &amp;quot;Label2&amp;quot;        Me.Label2.Size = New System.Drawing.Size ( 78 , 23 )        Me.Label2.TabIndex = 3        Me.Label2.Text = &amp;quot;透明程度:&amp;quot;        Me.AutoScaleBaseSize = New System.Drawing.Size ( 6 , 14 )        Me.ClientSize = New System.Drawing.Size ( 292 , 197 )        '在窗体中加入组件        Me.Controls.AddRange ( New System.Windows.Forms.Control ( )        { Me.Label2 , Me.Label1 , Me.TrackBar1 } )        Me.MaximizeBox = False        Me.Name = &amp;quot;Form1&amp;quot;        Me.Text = &amp;quot;VB.NET定制透明窗体&amp;quot;        CType ( Me.TrackBar1 , System.ComponentModel.ISupportInitialize )        .EndInit ( )        Me.ResumeLayout ( False )    End Sub#End Region    '事件处理    Private Sub TrackBar1_Scroll ( ByVal sender As Object , ByVal e As System.EventArgs ) Handles TrackBar1.Scroll        Dim temp As Double        temp =  ( 100 - TrackBar1.Value ) / 100        Label1.Text = temp.ToString ( )        Me.Opacity = temp    End SubEnd Class'启动程序Module Module1Sub Main ( )  Application.Run ( new Form1 ( ) )End subEnd Module</ccid_code></pre></td></tr></table></ccid_nobr><p >Form.vb源程序文件经过了下列命令编译后,就可以得到执行文件Form.exe,编译命令如下:<p ><ccid_nobr><table align="center" border="1" bordercolordark="#FFFFFF" bordercolorlight="black" cellpadding="2" cellspacing="0" width="550"><tr><td bgcolor="e6e6e6" class="code"><pre><ccid_code>Vbc /r:system.dll /r:system.windows.forms.dll /r:system.drawing.dll Form.vb</ccid_code></pre></td></tr></table></ccid_nobr><p >下面是Form.exe运行界面:<p ><center><img  src="http://www.hh010.com/upload_files/article/244/9_dr5huz35095.jpg"></center><p ><center>图01:VB.NET定制窗体透明度01</center><p ><center><img  src="http://www.hh010.com/upload_files/article/244/9_yv4kdl35096.jpg"></center><p ><center>图02:VB.NET定制窗体透明度02</center><p >通过上面的介绍,可以了解到如何创建窗体、组件,定义事件等,下面就在上面的这些知识之上,利用窗体的"Opacity"属性和定时器组件来实现一个窗体的特效窗体——实现窗体的淡入淡出效果。                                 <p align="center"><font color="FF0000" >1</font>2<span class="content01">下一页&gt;&gt;</span></p></p>
您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-4-10 13:15 , Processed in 0.100786 second(s), 24 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表