小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Visual Basic入門教程之四

 昵稱7077262 2011-06-14
 第四章 按鈕(一)

  從本章開始我們將正式進入VB的編程世界,但這還僅僅是個開端,要編出功能強大的軟件,還要學很多東西,那就要看以后的VB高級教程了,我也得努力學??!

  按鈕是我們在Windows操作見到最多的控件,它們有著各種各樣的功能:“確認”、“取消”、“下一步”等等,這些都是按鈕的表現(xiàn),另外還有很多圖形話的按鈕,其實它們并沒什么不同,所有的按鈕都是通過單擊(click)事件實現(xiàn)的,只不過是在外表不同罷了。下面就讓我們建立一個最簡單的按鈕,雙擊工具箱的CommandButton,將在窗體上建立一個形如圖4-1的按鈕,它的缺省名(Name屬性)為Command1,我們可以把它改名為cmdExit,把Caption屬性設為“退出”,然后雙擊,按鈕填寫代碼:

  PrivateSubcmdExit_Click()

UnloadMe

  EndSub

  按下F5或者工具條上的播放按鈕,運行程序。圖4-2當你按下退出按鈕的時候,就會自動退出程序,原因是當你單擊按鈕時激活了它的Click事件,執(zhí)行“UnloadMe”語句,使得窗體被卸載。

  上面舉了一個比較簡單的例子,下面的例子稍微復雜些:

  新建窗體,控件布局如圖4-3所示,包括一個List控件,一個Text控件和兩個按鈕(Command1和Command2),?。ū容^簡單的程序我們都采用缺省名),對它們屬性做如下修改:

  List1

  Caption=“請輸入你的名字”

  Text1

  Text=“”(空字符串)

  Button1

  Caption=“復原”

  Enabled=False

  Button2

  Caption=“清除”

  把使用Button1的Enabled屬性設為False(假),是使程序在初始時,無法單擊Command1。按F5,運行程序,圖4-4,復原按鈕成為灰色,不可選。

  當然現(xiàn)在程序還什么也不能做,下面我們在程序中添加代碼:

首先在General里聲明全局變量:

  DimStoreStringAsString'用來儲存字符串

  ※注意:為什么用全局變量?

  VB里每一個小過程都相當于一個程序,程序里的變量稱為局部變量,是只能在程序內部使用的,而當程序調用結束后,由于從內存中被清除,所以變量儲存的值也就消失了,這里的全局變量是用來在過程中傳遞字符串。

 

  接著填寫以下代碼:

  PrivateSubCommand1_Click()

  Text1.Text=StoreString

Command1.Enabled=False

  EndSub

  PrivateSubCommand2_Click()

  StoreString=Text1.Text

Text1.Text=""'清除

  Command1.Enabled=True

  EndSub

  運行程序,如圖4-5。按下“清除”,文本框被清除,按下“復原”,文本有被恢復,許多程序中的Undo/Redo就是利用這個原理實現(xiàn)的,現(xiàn)在知道為什么內存越多越好了吧。

  我們在把程序修改一下,把Button2刪除,Button1的Enabled屬性改為True,Caption改為“清除”,填寫代碼:

  PrivateSubCommand1_Click()

  IfCommand1.Caption="清除"Then

  StoreString=Text1.Text

Text1.Text=""'清除

  Command1.Caption="復原"

  Else

  Text1.Text=StoreString

  Command1.Caption="清除"

  EndIf

  EndSub

  同樣可以上面的功能,但是卻少用了一個控件,控件使用少的程序啟動會快些。

 

  下面的例子要更加復雜些,大家一定都用過Windows附件中的計算器,它是一個標準的科學計算器,利用VB我們也可以做到,只是沒有那么復雜,四則運算而已。

  先建立一個新的項目文件,里面包含一個Form1的窗體。然后,添加控件,包括一個Text框(Text1),和17個按鈕,這17個按鈕使用的名稱都是Command1,只是Index屬性不同,就好象一個數(shù)組,創(chuàng)立一組按鈕的方法是,先在窗體上建立一個按鈕(Command1),然后在Command1上擊鼠標右鍵,選擇復制(Copy),然后在窗體上任意部位擊右鍵,選擇粘貼(Paste),系統(tǒng)會提示是否創(chuàng)建控件組,選擇“是”,重復上面步驟,直至創(chuàng)立17個按鈕為止。各控件屬性如下表:

  Text1

  BackColor=&H00C0FFFF&

  Text=“0.”

  Command1

  Index0DD16

  Index0DD9Caption=“0”-“9”

  Index10Caption=“.”

  Index11Caption=“=”

  Index12Caption=“ ”

  Index13Caption=“-”

  Index14Caption=“×”

  Index15Caption=“÷”

  Index16Caption=“清除”

 

  如果想改變一些其他的屬性,比如字體,可以自己定義一下Font屬性,如果相對多個控件的共同屬性進行改變,可以在窗體上按下鼠標,拖動,把多個控件一起選定,然后對它們的共同屬性進行修改。

  別看這個東西小,還費了近我兩個小時呢,不覺大嘆手生,里面也有些地方很繞彎子,我盡量解釋清楚。

  在編寫程序之前,我們先來回顧一下計算器的使用。

  按下數(shù)字鍵在液晶屏上會出現(xiàn)數(shù)字,這是最基本的功能。

  第一次按下運算鍵,再按下數(shù)字鍵,將重新輸入第二個數(shù)字,再次按下運算鍵,將算出前兩個數(shù)的結果,然后按下數(shù)字鍵,將又重新輸入新的數(shù)字。

  輸入數(shù)字后,按下“等于鍵”將仍輸出原來的數(shù)字,輸入運算符和第二個數(shù)字后在按下“等于”,將得到二者的結果。然后又重復第二、三步。

  按下“清除”,數(shù)據(jù)被全部清除。

  了解了這些,我們一步一步實現(xiàn)。

  先實現(xiàn)數(shù)據(jù)的輸入,請看代碼。

  與未創(chuàng)立組的控件相比,它的事件里多了Index參數(shù),組里所有的對象都使用同一個事件。

  先在General里聲明窗體級全局變量:

  DimNum1,Num2AsSingle

  DimStrNum1,StrNum2AsString

  DimFirstNumAsBoolean'判斷是否是數(shù)字開頭

  因為Text1里是存放字符串的,所以要把輸入的數(shù)據(jù)進行運算,必須把字符型變量轉變?yōu)閷嵭妥兞?,分別用Num1、Num2和StrNum1、StrNum2進行存放。

  在Form_Load事件里給變量初賦值:

  Num1=0

  Num2=0

  StrNum1=""

  StrNum2=""

  FirstNum=True

  因為17個按鈕使用的是同一事件,所以我們用一個SelectCase語句區(qū)分各個按鈕,雙擊任意按鈕輸入代碼:

  PrivateSubCommand1_Click(IndexAsInteger)

  SelectCaseIndex

  Case0To9

  IfFirstNumThen

  StrNum1=Str(Index)’實型轉字符型

  FirstNum=False’初賦值為假

  Else’非初賦值

  StrNum1=StrNum1 Str(Index)

  EndIf

  Text1.Text=StrNum1’顯示

  <還有其他語句,等待插入>

  EndSelect

  EndSub

 

  運行程序的話已經可以輸入數(shù)據(jù),下面我們來處理小數(shù)點。

  在General里聲明新的變量:

  DimPointFlagAsBoolean'判斷是否已有小數(shù)點

  我們知道小數(shù)點只能輸入一次,一個數(shù)據(jù)中不能有多個小數(shù)點存在,所以需要一個布爾變量做判斷。

  在Form_Load里進行初賦值:

  PointFlag=False

  在Command的單擊事件里接著上面輸入新的代碼:

  Case10

  IfNotPointFlagThen’如果沒有小數(shù)點

  IfFirstNumThen’如果是第一個字符

  StrNum1="0."

  FirstNum=False

  Else

  StrNum1=StrNum1 "."

  EndIf

  Else’已有小數(shù)點

  ExitSub’則退出單擊事件

  EndIf

  PointFlag=True

  Text1.Text=StrNum1

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多