VisualBasic屬性、方法和事件二

字號(hào):

單擊按鈕執(zhí)行操作
     使用戶與應(yīng)用程序交互的最簡(jiǎn)便的方法是給用戶提供一個(gè)按鈕。可以用Visual Basic 提供的 CommandButton 控件,或利用包含圖形的 Image 控件,如一個(gè)圖標(biāo),來(lái)創(chuàng)建自己的“按鈕”。
     使用 CommandButton
     大多數(shù) Visual Basic 應(yīng)用程序都有 CommandButton,使用戶通過(guò)簡(jiǎn)單的敲擊按鈕來(lái)執(zhí)行操作。當(dāng)用戶選中按鈕時(shí),不僅會(huì)執(zhí)行相應(yīng)操作,還會(huì)使該按鈕看上去象被按下并釋放一樣。無(wú)論何時(shí),只要用戶單擊按鈕,就會(huì)調(diào)用 Click 事件過(guò)程。將代碼寫入 Click 事件過(guò)程,執(zhí)行想要執(zhí)行的動(dòng)作。
     在程序執(zhí)行時(shí),有多種方法可以選中 CommandButton :
     用鼠標(biāo)單擊按鈕。
     按 TAB 鍵把焦點(diǎn)移到相應(yīng)按鈕上,然后按 SPACE 鍵或 ENTER 鍵選中該按鈕。參閱本章后面的“焦點(diǎn)概述”。
     按 CommandButton 的快捷鍵(ALT +下劃線的字符)。
     在代碼中設(shè) CommandButton 的 Value 屬性為 True。 cmdClose.Value = True
     在代碼中調(diào)用 CommandButton 的 Click 事件。 cmdClose_Click
     如果該 CommandButton 是窗體的缺省命令按鈕,既使將焦點(diǎn)移到其它不是 CommandButton 的控件上,按下回車鍵也會(huì)選中該按鈕。在設(shè)計(jì)時(shí),通過(guò)設(shè)置某按鈕的 Default 屬性為 True ,指定它為窗體的缺省CommandButton 。
     如果該 CommandButton 是窗體的缺省的取消按鈕,即使把焦點(diǎn)移到其它控件上,也能通過(guò)按 ESC 鍵選中該按鈕。在設(shè)計(jì)時(shí),通過(guò)設(shè)置某按鈕的 Cancel 屬性為 True,指定它為窗體的缺省的取消按鈕。 所有這些操作都使 Visual Basic 調(diào)用 Click 事件過(guò)程。
     “測(cè)試按鈕”應(yīng)用程序
     利用 Caption 屬性可以在按鈕上顯示文字,告訴用戶該按鈕的功能。在圖3.4 中,在控件示例應(yīng)用程序的測(cè)試按鈕范例中包含一個(gè) Caption 屬性為"Change Signal" 的 CommandButton(此例的工作為Controls.vbp 示例應(yīng)用程序中的 Buttons.frm)。
     注意,S 是這個(gè)按鈕的快捷鍵,用一條下劃線表示。在 Caption 屬性的正文內(nèi)插入一個(gè) (&) 符號(hào),將使得此符號(hào)后面的字符成為該按鈕的快捷鍵(例如,Change &Signal)。
     用戶單擊 CommandButton,將執(zhí)行該 CommandButton 的 Click 事件過(guò)程中的代碼。在這個(gè)范例中,每次單擊按鈕,將變換一個(gè)不同的交通燈圖標(biāo)。
     詳細(xì)信息 關(guān)于 CommandButton 的屬性的詳細(xì)信息,請(qǐng)參閱第七章“使用Visual Basic 的標(biāo)準(zhǔn)控件”。
    用于顯示和輸入文本的控件
     Label 和 TextBox 控件是用于顯示和輸入文本的。讓應(yīng)用程序在窗體中顯示文本時(shí)使用 Label,允許用戶輸入文本時(shí)用 TextBox。Labels 中的文本為只讀文本,而 TextBox 中的文本為可編輯文本。
     可由用戶編輯的文本,例如一個(gè)順序條目     TextBox
     字段或一個(gè)密碼框
     只能顯示的文本,例如在窗體中標(biāo)識(shí)一個(gè)     Label
     字段或給用戶顯示指令
     Labels 和 TextBoxes 將在以下部分討論:
    用 Label 顯示文本(vbconUsingLabels)使用 Label 控件的基本知識(shí)。
    使用 TextBox(vbconWorkingWithTextBox)使用 TextBox 的基本知識(shí)。
     用 Label 顯示文本
     Label 控件顯示的文本用戶不能直接修改。如 TextBox 和 ScrollBar 這些沒有自己的 Caption 屬性的控件,可以用 Label 標(biāo)識(shí)。在 Label 中實(shí)際顯示的文本是由 Caption 屬性控制的,該屬性可以在設(shè)計(jì)時(shí)在“屬性”窗口中設(shè)置或在運(yùn)行時(shí)用代碼賦值。
     在缺省情況下,標(biāo)題是 Label 控件中的可見部分。但是,如果把BorderStyle 屬性設(shè)成 1(可以在設(shè)計(jì)時(shí)進(jìn)行),那么 Label 就有了一個(gè)邊框,看起來(lái)像一個(gè) TextBox。還可以通過(guò)設(shè)置 Label 的 BackColor、BackStyle、ForeColor 和 Font 屬性來(lái),改變 Label 的外觀。
     改變 Label 尺寸以適應(yīng)其內(nèi)容
     設(shè)計(jì)時(shí)可在“屬性”窗口中指定單行 Label 的標(biāo)題。但是如果要輸入一個(gè)較長(zhǎng)的或在運(yùn)行時(shí)可能變化的標(biāo)題,該怎么辦呢?Label 提供了兩種屬性:AutoSize 和 WordWrap,用于幫助您改變控件尺寸以適合較長(zhǎng)或較短的標(biāo)題。
     AutoSize 屬性決定控件是否自動(dòng)改變尺寸以適應(yīng)其內(nèi)容。如該屬性設(shè)為True,Label 就會(huì)根據(jù)其內(nèi)容進(jìn)行水平方向變化,如圖 3.5 所示。
     WordWrap 屬性使 Label 根據(jù)其內(nèi)容進(jìn)行垂直方向變化,而保持其寬度不變,如圖3.6 所示。本例的工作版,請(qǐng)參閱應(yīng)用程序示例 Controls.vbp 中的 WordWrap.frm。
     注意 如果在 Controls.vbp 中運(yùn)行AotoSize示例,就會(huì)發(fā)現(xiàn)為了同時(shí)使用 WordWrap,必須兩個(gè)復(fù)選框都選中。這是因?yàn)椋胧?Label 的WordWrap 屬性起作用,就必須設(shè)置 AutoSize 為 True。只有在一個(gè)單字的寬度超過(guò)控件的當(dāng)前寬度時(shí),Label 的寬度才會(huì)增加。
     詳細(xì)信息 關(guān)于 Label 控件屬性的詳細(xì)信息,請(qǐng)參閱第七章“使用 VisualBasic 的標(biāo)準(zhǔn)控件”。
     使用 Text Boxes
     TextBox 是一種通用控件,可以由用戶輸入文本或顯示文本。除非把TextBox 的 Locked 屬性設(shè)為 True,否則不能用 TextBox 顯示不希望用戶更改的文本。