|
TOP
|
| 文章内容 |
虽然VB.NET和VB在语法上有很多相同之处,但从根本上说,VB.NET不仅仅是VB的另外一个升级版本,而是一个全新的语言。VB.NET全面支持面向对象,在VB.NET中哪怕是一个字符串,你也都可以把它看成是一个对象,一个实例,也有自己的属性和方法。同样VB.NET中程序窗体(Form)也是一个实例,它是由命名空间“System.Windows.Forms”中的“Form”类通过构造函数而成的一个实例。下面试着用VB.NET来编写与窗体相关的程序。
利用VB.NET来定制窗体的透明度
在下面介绍的程序中,将通过调整TrackBar组件的数值来调整窗体的透明程度。定制透明的窗体,如果要用其他语言来实现,一定是件很复杂的工作,但对于VB.NET来说,则是一件非常简单的事情,这是因为在.Net FrameWork SDK的“Form”类中,提供了一个可以设定窗体透明度的属性“Opacity”,当“Opacity”属性值为“1”,说明窗体不透明,当“Opacity”为“0”,则窗体完全透明。
构造整个程序的主要思路就是:首先要继承一个Form对象,程序中名称为Form1,然后创建一个TrackBar组件和一个Label组件,并进行初始化,Label组件的名称为Label1,主要是显示当前窗体的透明度数值。接着定义各组件相关事件,程序中只有一个TrackBar1的“Scroll”事件,并在Form1中加入这些可视组件,这样组件才能显示出来。最后提供VB.NET的程序入口函数“Main”来运行这个程序。下面在VB.NET中通过TrackBar1来定制窗体透明度的完整程序代码(Form.vb):
Imports System.Drawing
Imports System.Windows.Forms
Imports System.ComponentModel
'继承得到一个窗体
Public Class Form1
Inherits System.Windows.Forms.Form
#Region " Windows 窗体设计器生成的代码 "
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 = "TrackBar1"
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 = "Label1"
Me.Label1.Size = New System.Drawing.Size ( 66 , 24 )
Me.Label1.TabIndex = 2
Me.Label1.Text = "1"
Me.Label2.Location = New System.Drawing.Point ( 62 , 104 )
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size ( 78 , 23 )
Me.Label2.TabIndex = 3
Me.Label2.Text = "透明程度:"
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 = "Form1"
Me.Text = "VB.NET定制透明窗体"
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 Sub
End Class
'启动程序
Module Module1
Sub Main ( )
Application.Run ( new Form1 ( ) )
End sub
End Module |
Form.vb源程序文件经过了下列命令编译后,就可以得到执行文件Form.exe,编译命令如下:
Vbc /r:system.dll /r:system.windows.forms.dll /r:system.drawing.dll Form.vb |
下面是Form.exe运行界面:

图01:VB.NET定制窗体透明度01

图02:VB.NET定制窗体透明度02
通过上面的介绍,可以了解到如何创建窗体、组件,定义事件等,下面就在上面的这些知识之上,利用窗体的"Opacity"属性和定时器组件来实现一个窗体的特效窗体——实现窗体的淡入淡出效果。
【 |
|
| 相关信息 |
![]() |
VB.NET编程之透明窗体篇 (1)
发布者:mmcbbs
浏览量:160
发布日期:2005-04-10 10:27:27
所属专题: |
|
|
|
|