一。命令按鈕(commandbutton):通常用來完成某些功能,例如確認,撤認,執行,完成等操作。
二。命令按鈕組(commandgroup):當一個表單需要多個命令按鈕時,可以使用命令按鈕組,這樣可使事件代碼更簡潔,界面更加整潔和美觀。命令按鈕組中各命令按鈕的排列方向和位置可根據用戶的需要進行調整,操作的步驟如下:
1.單擊選中表單中的命令按鈕組。
2.右擊命令按鈕組,在快捷菜單中選擇"編輯"命令。
3.選中命令按鈕后,根據需要進行相關操作(也可在"屬性"窗口的對象選擇列表框中直接選擇命令按鈕組中各個命令按鈕)
三。命令按鈕(組)的常用屬性:見下表:
屬性 | 功能 |
caption | 標題文本.含"<"字符,輸入該字符可選擇該命令按鈕 |
picture | 標題圖像 |
default | 為.T.時,按回車鍵可選擇此命令按鈕 |
cancel | 為.T.時,按esc鍵可選擇此命令按鈕 |
value | 命令按鈕組中被選中的命令按鈕的序號 |
buttoncount | 命令按鈕組中的命令按鈕的個數 |
四。制作一個表單,添加三個命令按鈕command1~command3,練習設置其屬性,按圖20依次設置其屬性
Visual FoxPro基礎教程完整版1.選中command1,在"屬性"窗口中中選中caption屬性,在上方文本框中輸入"確定",如圖21
2.選中command2,在"屬性"窗口中中選中caption屬性,在上方文本框中輸入"<c取消",如圖22,
并將其cancel屬性設為。t.,則在運行時,單擊該按鈕,按C鍵或按ESC鍵,均可執行此按鈕的click事件代碼。
3.選中command3,在"屬性"窗口中中雙擊其picture屬性,在彈出的對話框中選擇"d:vfp98fox.bmp"即可。
五。例一:將xggz表單(制作方法見本章第二節)中的各個命令按鈕換成命令按鈕,對比使用方法。
1.打開xggz.scx,將原來的幾個命令按鈕刪除,在原來的位置添加一個命令按鈕組,如圖23
2.按下表設置命令按鈕組commandgroup1的屬性:
對象 | 屬性名 | 屬性值 |
commandgroup1 | buttoncount | 5 |
commandgroup1 | auotsize | .T. |
command1 | caption | 第一個 |
command2 | caption | 上一個 |
command3 | caption | 下一個 |
command4 | caption | 最后一個 |
command5 | caption | 退出 |
3.編寫代碼:命令按鈕組commandgroup1的click事件代碼如下:
sel=this.value &&變量sel用于命令按鈕組中被選中的命令按鈕的序號(即運行時被單擊的)
do case
case sel=1
go top
case sel=2
if !bof()
skip -1
endif
case sel=3
if !eof()
skip
endif
case sel=4
go bottom
case sel=5
thisform.release
endcase
thisform.refresh
六。例二:按人員編號增刪改"工資情況表的數據
1.設計表單的界面:新建表單→打開數據環境→將"工資情況"表添加到數據環境中→從數據環境中,拖動"工資情況"表的所有字段到表單中,并添加文本框 text1用于輸入定位人員的編號,添加"定位"(command1),"追加"(command2)和"刪除"(command3)三個命令按鈕,界面如圖24所示,并將文本框text1的inputmark屬性設為99999
2.編寫代碼:
*"定位"按鈕的click事件代碼:
bh=alltrim(thisform.text1.value)
jlh=recno()
locate for 編號=bh
if eof()
go jlh
=messagebox("沒有找到該編號!")
else
thisform.refresh
endif
*"追加"按鈕的click事件代碼:
append blank
thisform.refresh
*"刪除"按鈕的click事件代碼:
yn=messagebox("是否要刪除?",4+32)
if yn=6
delete
if eof()
go top
else
skip
endif
thisform.refresh
endif
3.可進一步考慮問題:怎樣實現在文本框text1中輸完編號,回車即進行查找?
可在text1的valid事件加入如下代碼:
if !empty(this.value)
thisform.command1.click &&調用命令按鈕"查找"(即command1)的click事件代碼,進行查找
else
return .f.
endif
Visual FoxPro基礎教程完整版