VB 版 (精华区)

发信人: student (earth), 信区: VB
标  题: 深入浅出VB.Net Windows Form-5
发信站: 哈工大紫丁香 (2002年01月26日19:20:49 星期六), 站内信件


  实现继承

  现在我们进入本文最重要的一部分,我们在这部分将讨论继承的强大作用,当创建一
个新表单时,就扩展了System.WinForms.Form 类,VB.Net支持继承,你就可以扩展你自己
的表单,通过这种方法,当需要创建一个和以前的表单相似的表单时,可以通过扩展以前
的表单来实现,这样可以节约大量时间。就像下面这个表单。

Public Class NewForm
 Inherits WindowsApplication1.ExistingForm

  下面的例子显示了表单的继承性。我们创建了一个Employee表单,Employee表单中有
两个标签,两个文本框,两个按钮。如图4:


*******图4*********

  现在我们需要为公司的承包人创建一个表单,承包人就像公司的其他雇员一样,唯一
不同的是他们不拿公司的薪水,公司只为他们的服务而向其它公司付费。现在,我们扩展
已经存在的Employee表单肯定要比创建一个新表单要强。承包人有FIRST NAME,LAST NAME
,另外还有一个外公司域。

  list4列出了employee表单的代码

Listing 4: The Employee Form

Imports System.Drawing
Imports System.Windows.Forms
Imports System.ComponentModel

Public Class Form2
 Inherits Form

 Public Sub New()
  MyBase.New()
  'This call is required by the Win Form Designer.
  InitializeComponent()
 End Sub

 #Region " Windows Form Designer generated code "

 'Required by the Windows Form Designer
 'Required by the Windows Form Designer
 Private components As System.ComponentModel.Container
 Protected cancel As System.Windows.Forms.Button
 Private LastName As System.Windows.Forms.TextBox
 Private FirstName As System.Windows.Forms.TextBox
 Private Label2 As System.Windows.Forms.Label
 Private Label1 As System.Windows.Forms.Label
 Protected ok As System.Windows.Forms.Button

 Dim Form2 As System.Windows.Forms.Form

 Private Sub InitializeComponent()
  Me.Label1 = New System.Windows.Forms.Label()
  Me.FirstName = New System.Windows.Forms.TextBox()
  Me.ok = New System.Windows.Forms.Button()
  Me.Label2 = New System.Windows.Forms.Label()
  Me.LastName = New System.Windows.Forms.TextBox()
  Me.cancel = New System.Windows.Forms.Button()
  Me.SuspendLayout()
  '
  'Label1
  '
  Me.Label1.Location = New System.Drawing.Point(8, 24)
  Me.Label1.Name = "Label1"
  Me.Label1.TabIndex = 1
  Me.Label1.Text = "First Name"
  '
  'FirstName
  '
  Me.FirstName.Location = New System.Drawing.Point(120, 16)
  Me.FirstName.Name = "FirstName"
  Me.FirstName.Size = New System.Drawing.Size(136, 20)
  Me.FirstName.TabIndex = 3
  Me.FirstName.Text = ""
  '
  'ok
  '
  Me.ok.Location = New System.Drawing.Point(8, 128)
  Me.ok.Name = "ok"
  Me.ok.Size = New System.Drawing.Size(112, 32)
  Me.ok.TabIndex = 0
  Me.ok.Text = "OK"
  '
  'Label2
  '
  '
  Me.Label2.Location = New System.Drawing.Point(8, 48)
  Me.Label2.Name = "Label2"
  Me.Label2.Size = New System.Drawing.Size(88, 16)
  Me.Label2.TabIndex = 2
  Me.Label2.Text = "Last Name"
  '
  'LastName
  '
  Me.LastName.Location = New System.Drawing.Point(120, 40)
  Me.LastName.Name = "LastName"
  Me.LastName.Size = New System.Drawing.Size(136, 20)
  Me.LastName.TabIndex = 4
  Me.LastName.Text = ""
  '
  'cancel
  '
  Me.cancel.Location = New System.Drawing.Point(144, 128)
  Me.cancel.Name = "cancel"
  Me.cancel.Size = New System.Drawing.Size(112, 32)
  Me.cancel.TabIndex = 5
  Me.cancel.Text = "Cancel"
  '
  '
  'Form2
  '
  Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
  Me.ClientSize = New System.Drawing.Size(272, 181)
  Me.Controls.AddRange(New System.Windows.Forms.Control()
   {Me.cancel, Me.LastName, Me.FirstName, Me.Label2, Me.Label1,
    Me.ok})
  Me.Name = "Form2"
  Me.Text = "Employee Form"
  Me.ResumeLayout(False)
  
 End Sub

 #End Region

End Class


  注意除ok和cancel按钮外,其他所有控件都被宣布为私有变量,ok和cancel控件被宣
布为protect类型,由继承得来的类可以访问protect类型的控件。 

--
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.236.168]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.836毫秒