VB面向对象编程的一个简单的演示程序

2016-01-29 12:49 69 1 收藏

VB面向对象编程的一个简单的演示程序,VB面向对象编程的一个简单的演示程序

【 tulaoshi.com - ASP.NET 】


  这个例子,也可以看作是使用类模块的入门级的演示。

  新建一个工程,在form1中添加3个文本框。我们希望对这三个文本框中输入的字符进行限制,第一个只允许输入数字,第二个只允许输入字母,第三个只允许输入大写字母。

  一般的做法,可以在这三个文本框的keypress事件过程中分别写检查代码。好一点的方案,是把检查代码写成一个共用的过程,让这三个文本框的keypress事件去各自进行调用。

  现在,我们用面向对象的思想来解决这个问题。

  在工程中添加一个类模块,命名为cTxt。添加下面的代码到其代码窗口:

Public WithEvents textbox As textbox '添加一个textbox,这只是一个演示,所以简单地把它写成public成员,在实际的工程中,一般是私有的。
Public isDecimal As Boolean ' 简单地用public表示此类的一个属性。值为“是”,则只能输入数字,“否”,则只能输入字母
Private Sub textbox_keypress(KeyAscii As Integer)
Select Case KeyAscii
Case 0 To 31
Case 48 To 57 '按键为数字
If Not isDecimal Then KeyAscii = 0
Case 65 To 90, 97 To 122 '按键为字母
If isDecimal Then KeyAscii = 0
Case Else
KeyAscii = 0
End Select
End Sub

  类模块完成了。

  在form1代码窗口,添加下面的代码:

Option Explicit
Dim deciText As cTxt, letterText As cTxt, UCaseText As cTxt


Private Sub form_load()
Set deciText = New cTxt
Set deciText.textbox = Text1 ' deciText.textbox指向text1
deciText.isDecimal = True ' 设置deciText的isDecimal属性,使Text1只能输入数字。
Set letterText = New cTxt
Set letterText.textbox = Text2
letterText.isDecimal = False

Set letterText = New cTxt
Set letterText.textbox = Text3
letterText.isDecimal = False

End Sub
  按F5运行,在三个文本框中随便输入一些字符试试。哈哈,我们在form1窗口中,没有写任何的检查代码,就让这三个文本框工作得很好了。

  现在,我们需要让Text3有cTxt不具备的特性,即只允许输入大写字母。简单地添加下面几行代码到form1的代码窗体中:

Private Sub Text3_KeyPress(KeyAscii As Integer)
If KeyAscii > 96 And KeyAscii < 123 Then
KeyAscii = 0
End If
End Sub  F5运行看看。Text3能准确地控制按键了。在这里,我们注意到,Text3既能响应form1窗体中的事件过程。作为类的成员,又能响应类中的同一事件的过程。  是不是很简单?  这就是类。

来源:http://www.tulaoshi.com/n/20160129/1487683.html

延伸阅读
标签: Delphi
  2.1.8.4 过程和函数的语句部分         过程或函数的语句部分由 begin 开始, end结束。函数需要一个返回值。可以将返回值赋给函数名称,也可以将返回值赋给 Result 变量。下面的例程将返回值赋给函数名称: function CalculateInterest(Principal,InterestRate: Double):Double; begi...
标签: Web开发
要是XHTML与CSS能面向对象。。太阳应该从北边升起了。但是,凡事都应该带着OO的思想来看问题,也勉强可以凑数拉。其实,早在零几年就有人提出了OO-style,不过已找不到。 那要怎样OO呢?现在大家都知道CSS是可以介样写滴:  .G_G { /* xxxxxx */ }  我们可以把它大约看一个原型,或者说成类,-__-b 好像本来就是类的样子,然后要...
标签: Web开发
一直以来,我都主要是做winform方面的编程,最近做了点web方面的,所以也研究了几天的javascript。偶有心得故记之: 应用面向对象的思想在javascript中同样适用,关键的是你敢不敢用,想不想用。 我曾使用vs2005编写了一个vs2003工具箱完全类似的导航工具条,我比较喜欢在winform中通过这种方式向用户提供应用程序功能的导航。所...
一、面向对象概念的一些误解 “面向对象”是一个如今被人叫烂的词汇,就像去年人们都喜欢把自己的公司打上“.com”的标记一样。其实有多少人能真正理解这个词汇呢,很难说。我喜欢这样来比喻人们对“对象”一词的滥用。“对象”就好比人们经常说的“酷”和“爽”,很多人并不仔细考虑这两个词的差别,在很多情况下他们是通用的,“...
#include graphics.h #include stdio.h #include math.h #include time.h #define PI 3.14159 #define maxx 640 #define maxy 480main() {int i;  char c;  init();  draw();  c=getch(); } init() /*初始化图形系统函数*/ {int gdriver=DETECT,gmode; &n...

经验教程

49

收藏

79
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部