visual-foxpro-實用教程(第2版)(十一五國家規劃)第05章-控件課件_第1頁
visual-foxpro-實用教程(第2版)(十一五國家規劃)第05章-控件課件_第2頁
visual-foxpro-實用教程(第2版)(十一五國家規劃)第05章-控件課件_第3頁
visual-foxpro-實用教程(第2版)(十一五國家規劃)第05章-控件課件_第4頁
visual-foxpro-實用教程(第2版)(十一五國家規劃)第05章-控件課件_第5頁
已閱讀5頁,還剩97頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第5章控

5.1標簽

5.2文本框和編輯框

5.3命令按鈕和命令按鈕組

5.4列表框和組合框

5.5選項按鈕組

5.6復選框

5.7頁框和頁

5.8表格

5.9圖像框和圖片框

5.10計時器

5.11微調按鈕

5.12Active控件

第5章控件5.1標簽15.1標簽

標簽用于顯示文本,一般用于提示信息。顯示文本的格式由標簽的屬性設置。 通過上述屬性與標簽的其他屬性配合一般能夠滿足提示信息的各種要求。同時還能產 生許多的特殊效果。【例Ex_TextMove】 “歡迎”在屏幕上移動。

(1)

設計表單設置屬性 在表單上設計一個 標簽,屬性如下: Caption=歡迎 FontName=楷體_GB2312 FontSize=48 表5.1標簽常用屬性

FontBold=.T. ForeColor=255,0,0 Alignment=2

屬性功能Caption顯示文本內容,最多允許256個字符BackStyle指定背景是否透明。0-透明:可看到標簽后的東西1-不透明:背景由標簽設置AutoSize指定是否可自動調整標簽的大小。WordWrap顯示是否可換行。Alignment指定文本在標簽中的對齊方式。0-左1-右2-中央5.1標簽 標簽用于顯示文本,一般用于提示信息。顯示文本的25.1標簽(2)

編寫事件代碼*標簽的Click事件代碼

DOWHILE.T. FORI=1TOTHISFORM.WIDTHstep10 THIS.LEFT=I =INKEY(1) &&延時1秒 NEXTI ENDDO用標簽產生特殊效果的辦法:

(1)

字排多行

在需換行的地方加Chr(13)回車符。例如Caption=”歡”+Chr(13)+”迎”。

如果要改變字的方向,設FontName屬性為帶@的字體名。

(2)

字從小到大 用一個循環不斷改變標簽的FontSize,同時調整Top和Left的屬性值。 THIS.Top=THISFORM.HEIGHT/2-THIS.FontSize/2

(3)

立體字 設計兩個標簽,將另一個標簽的相對位置略加移動,ForeColor設置不同的顏色,就可產生立體字的效果。

5.1標簽(2)編寫事件代碼35.2文本框和編輯框

文本框(TextBox)用于顯示、輸入和修改數據。

例如,

將Value屬性設置為{},文本框的內容將會自動轉變為VFP系統默認的日期格式。

編輯框(EditBox)與文本框的功能類似,也是用于顯示、輸入和修改數據。其區別是文本框一般為一行,輸入的內容放不下會自動向左移動。當文本框的ControlSource與表字段數據源綁定時不能放內容太長的字段或備注字段。而編輯框則為若干行一個區域,當編輯框的ScrollBars屬性設為.T.,還可包含滾動條,因此更適合編輯較多文本內容。

另外,IntegralHeight屬性可控制編輯框的高度是否自動調整,以便其最后一項能被完整顯示。

5.2文本框和編輯框 文本框(TextBox)用于顯示、45.2文本框和編輯框文本框與編輯框有時會用到下列事件:When事件:在得到焦點之前發生;GotFocus事件:在得到焦點時發生;Valid事件:在失去焦點之前發生;LostFocus事件:在失去焦點后發生。圖5.4用戶登錄界面

例如,可在When事件代碼中保存文本框的原內容,可在Valid事件代碼中驗證文本框數據輸入內容的正確性。Valid事件中的RETURN返回.F.,則焦點不會移開。表單釋放時忽略RETURN值的影響。

【例Ex_Login】

在主程序Ex_txt1中先調用表單Ex_Login進行用戶登錄,如果用戶名和口令正確,調用表單Ex_EditGZ執行。(1)設計表單設置屬性

(2)設置屬性 口令文本框(txtPassWord)屬性PasswordChar=*5.2文本框和編輯框文本框與編輯框有時會用到下列事件: 例55.2文本框和編輯框(3)

編寫代碼 *表單的Activate事件代碼 THIS.txtPASSWORD.Enabled=.f. &&輸入登錄名后才能輸口令 THIS.txtNAME.SetFocus &&啟動后先輸入登錄名 *txtNAME文本框KeyPress事件代碼 LPARAMETERSnKeyCode,nShiftAltCtrl IFnKeyCode=13.AND.!EMPTY(THIS.VALUE) &&輸登錄名后回車即進入輸口令 THISFORM.txtPASSWORD.Enabled=.t. THISFORM.txtPASSWORD.SetFocus ENDIF *“確定(cmdOK)”按鈕的Click事件代碼

UNAME=THIS.PARENT.txtNAME.VALUE Yes=.F. DOCASE CASEUname="ZHANG".AND.TRIM(THISFORM.txtPASSWORD.VALUE)=="123456" Yes=.T.CASEUname="WANG".AND.TRIM(THISFORM.txtPASSWORD.VALUE)=="681266" Yes=.T.ENDCASE5.2文本框和編輯框(3)編寫代碼65.2文本框和編輯框

IfYes Messagebox(“登錄成功!”) Else Messagebox(“用戶名或口令不對!”) Endif THISFORM.Release CLEAREVENTS *“退出(cmdExit)”按鈕的Click事件代碼

THISFORM.Release CLEAREVENTS

*Ex_txt1.prg程序代碼

PUBLICYES SETDEFAULTTOD:\RY_MIS DOFORMEx_LOGIN READEVENTS IFYES DOFORMEx_EditGZ READEVENTS ENDIF CANCEL5.2文本框和編輯框 IfYes *Ex_txt175.2文本框和編輯框【例Ex_TextCopy】將左邊編輯框中的選擇內容復制到右邊文本框中。也可在左邊編輯框自動選擇與右邊文本框內容相同的部分。

(1)

設計表單 表單包含下列對象:左邊編輯框Edit1,右邊文本框Text1,中間一個命令按鈕Command1。 圖5.5文本框內容復制界面

5.2文本框和編輯框【例Ex_TextCopy】將左邊編輯85.2文本框和編輯框

(2)設置對象屬性

(3)編寫事件代碼 *“->(Command1)”按鈕的Click事件代碼 THIS.Parent.Text1.Value=THIS.Parent.Edit1.SelText *編輯框Edit1的GotFocus事件代碼 EditBox::GotFocus

str1=Trim(This.parent.Text1.Value) d=At(str1,This.Value) Ifd>0 This.SelStart=d-1 ` This.SelLength=Len(str1) Else This.SelLength=0 Endif5.2文本框和編輯框(2)設置對象屬性 *編輯框E95.2文本框和編輯框 用戶可觀察和操作:

(1)

啟動后左邊編輯框的內容全部被選擇; (2)

用戶可在左邊編輯框重選部分內容后,選“->”命令按鈕,則選擇的內容在右邊編輯框中出現;(3)在右邊編輯框重輸左編輯框中包含的部分內容,單擊左編輯框,看與右邊編輯框相同的內容是否自動被選擇。

5.2文本框和編輯框 用戶可觀察和操作:105.3 命令按鈕和命令按鈕組

當表單需多個命令按鈕時,可使用命令按鈕組(CommandGroup)。命令按鈕組中各命令按鈕排列方向和位置根據需要進行調整。操作次序如下:

(1)

選命令按鈕組;

(2)

按右鍵,在快捷菜單中選“編輯”;

(3)

選命令按鈕后根據用戶需要進行調整。

也可在屬性窗口的對象選擇列表框中直接選擇命令按鈕組中各命令按鈕對象名。

5.3 命令按鈕和命令按鈕組 當表單需多個命令按鈕時,可使115.3 命令按鈕和命令按鈕組 說明表單中三個命令按鈕屬性設置情況:

(1)Caption=”確定”,單擊該按鈕可執行Click事件代碼。

(2)Caption=”\<C取消”,Cancel=.T.,單擊該按鈕、敲C鍵、按Esc鍵均可執行Click事件代碼。

(3)Picture=”d:\vfp98\fox.bmp”,單擊該按鈕可執行Click事件代碼。

命令按鈕中用得最多的事件為Click,命令按鈕組中有Click事件。選擇命令按鈕組中的命令按鈕時,如本身包含Click事件代碼,則就執行該代碼。如本身不包含Click事件代碼,則執行命令按鈕組Click事件代碼。圖5.6命令按鈕標題的三種情況

5.3 命令按鈕和命令按鈕組 說明表單中三個命令按鈕屬性設置125.3 命令按鈕和命令按鈕組【例Ex_EditGZ_Gcmd】將Ex_EditGZ表單(第二章)中的命令按鈕換成命令按鈕組,對比使用方法。(1)

修改界面5.3 命令按鈕和命令按鈕組【例Ex_EditGZ_Gcmd135.3 命令按鈕和命令按鈕組*CommandGroup1的Click事件代碼sel=This.ValueDOCASECASEsel=1 GOTOPCASEsel=2 IF!BOF() SKIP-1 ENDIFCASEsel=3 IF!EOF() SKIP ENDIFCASEsel=4 GOBOTTOMENDCASETHISFORM.REFRESH*退出(Command5)的Click事件代碼THISFORM.Release5.3 命令按鈕和命令按鈕組*CommandGroup1的145.3 命令按鈕和命令按鈕組【例Ex_Edit1】按人員編號增刪改基本情況數據。(1)

設計表單界面 新建表單打開數據環境將RY數據庫中的工資情況表添加到數據環境中拖數據環境的工資情況表的字段到表單中。 建立文本框txtBH用于輸入定位人員的編號,建立定位(cmdLOCATE)、追加和刪除三個命令按鈕。 圖5.8增刪改基本情況數據界面(1)

5.3 命令按鈕和命令按鈕組【例Ex_Edit1】按人員編號155.3 命令按鈕和命令按鈕組 (2)

設置對象屬性 設置TxtBH的屬性InputMask=99999。 字段文本框的ControlSource屬性如下: txt編號.ControlSource=基本情況.編號 txt姓名.ControlSource=基本情況.姓名 txt出生時間.ControlSource=基本情況.出生時間

(3)

編寫代碼 *“定位”命令按鈕的Click代碼 bh=Trim(This.Parent.txtBH.Value) jlh=recno() LocateFor編號=bh IfEof() Gojlh =MessageBox(“沒有找到該編號!”) Else Thisform.Refresh Endif*“追加”命令按鈕的Click代碼 AppendBlank Thisform.Refresh *“刪除”命令按鈕的Click代碼 yn=Messagebox(“是否要刪 除?",4+32)**未曾提過 Ifyn=6 Delete IfEof() Gotop Else Skip Endif Thisform.Refresh Endif5.3 命令按鈕和命令按鈕組 (2)設置對象屬性*“追165.3 命令按鈕和命令按鈕組(4)

可進一步考慮的問題§

在TxtBH文本框中輸回車也進行記錄定位*TxtBH文本框的VALID事件代碼IF!EMPTY(THIS.VALUE) THIS.PARENT.cmdLOCATE.Click&&打回車啟動定位事件代碼ELSE RETURN.F. &&TxtBH文本框為空不能離開ENDIF5.3 命令按鈕和命令按鈕組(4)可進一步考慮的問題175.4列表框和組合框

列表框(ListBox)主要用來選擇一組預定的數據,當選項內容在列表區域顯示不下時,可通過滾動條瀏覽列表的其他選項。

組合框(ComboBox)和列表框的功能類似,使用更靈活。實際上,組合框是由一個文本框和下拉列表框組成的。列表框在屏幕占用一個區域,而組合框則占用一行。如列表框或組合框包含多列,則ColumnCount屬性為列數,ColumnWidths屬性為列的寬度,BoundColumn屬性確定被選列表的哪一列作為Value屬性的值。另外,IntegralHeight屬性可控制列表框的高度是否自動調整,以便其最后一項能被完整顯示。

5.4列表框和組合框列表框(ListBox)主要用來選擇一185.4列表框和組合框【例Ex_List】列表框選擇多個項目練習。

(1)設計界面

(2)設置對象的屬性 List1對象的屬性: MoverBars=.T. MultiSelect=.T.(3)編寫事件代碼 *List1對象LostFouce事件 qm=""5.4列表框和組合框【例Ex_List】列表框選擇多個項目練195.4列表框和組合框(3)

編寫事件代碼 *List1對象LostFouce事件 qm="" FORI=1TOTHIS.ListCount IFTHIS.Selected(I) qm=qm+Trim(This.List(I))+"," Endif NextI Messagebox(qm) *“加入->”命令按鈕Click事件

QM=This.Parent.Text1.Value If!Empty(QM) No=.T. ForI=1To This.Parent.List1.ListCount IfThis.Parent.List1.List(I)=QM No=.F. Endif NextI IfNo This.Parent.List1.AddItem(QM) Thisform.Refresh Endif Endif*“<-移去”命令按鈕Click事件This.Parent.List1.Clear5.4列表框和組合框(3)編寫事件代碼 If205.4列表框和組合框【例Ex_Edit2】按人員編號增刪改基本情況數據。圖5.10增刪改基本情況數據界面(2)

“職稱”組合框: ControlSource =基本情況.職稱 RowSourceType=值 RowSource=政工師,工程師,助工

(1)設計表單界面

(2)設置對象屬性“文化程度”組合框: ControlSource=基本情況.文化程度 RowSourceType=值 RowSource=研究生,本科,大專,高中,初中 Style=25.4列表框和組合框【例Ex_Edit2】按人員編號增刪改基215.5 選項按鈕組 選項按鈕組是包含選項按鈕的容器控件。一般一個選項按鈕組可包含多個選項按鈕, 其特點是組中僅有一個選項按鈕被選中,當前選項按鈕被選中,先前被選中的被釋放。圓點指示當前被選中選項按鈕。選項按鈕組中各選項按鈕排列方向和位置根據用戶需要進行調整。

例如,

選擇選項按鈕組中選項按鈕操作次序如下:

(1)

選選項按鈕組;

(2)

按右鍵,在快捷菜單中選“編輯”;

(3)

選選項按鈕后根據用戶需要進行調整。

5.5 選項按鈕組 選項按鈕組是包含選項按鈕的容器控件。一225.5 選項按鈕組5.5 選項按鈕組235.5 選項按鈕組【例Ex_Edit2】按人員編號增刪改基本情況數據。(1)設計表單界面

(2)

設置對象屬性 “性別”選項按鈕組(OptionGroup1)有2個選項按鈕(Option1,Option2) Option1.Caption=男 Option2.Caption=女

(3)編寫代碼

圖5.11修改增刪 改基本情況數據界面(3)

*“性別”選項按鈕組(OptionGroup1)的Valid事件 IfThis.Value=1 Replace基本情況.性別With"男" Else Replace基本情況.性別With"女" Endif

5.5 選項按鈕組【例Ex_Edit2】按人員編號增刪改基本245.6復選框

復選框通常代表獨立的邏輯值。復選框由一個方框和標題說明組成。一般情況下,用空框來表示該選項未被選定,當用戶選定某一選項時,與該選項對應的方框中會出現打勾符號。

5.6復選框 復選框通常代表獨立的邏輯值。復選框由一個方框255.6復選框 復選框三種顯示格式如下圖所示:

復選框可通過ControlSource屬性與表的邏輯型字段進行綁定。例如,上例的婚否字段。 復選框是彼此獨立的,在一個表單中用戶可以設置多個復選框,在選擇時,可以選擇其中的一個或多個、甚至全部,也可以一個都不選。

5.6復選框 復選框三種顯示格式如下圖所示:265.7頁框和頁

頁框(PageFrame)是頁面(Page)的容器。頁框定義了頁面的大小、位置、邊框類型和活動頁面等總體特性。一個頁框可包含若干個頁面,而頁面本身也是一個容器,一個頁面又可包含若干個對象。通過頁面,大大展寬了表單的大小,并方便分類組織對象。頁框中通過頁面標題選擇頁面,當前被選中的頁面就是活動頁面。

5.7頁框和頁 頁框(PageFrame)是頁面(Pa275.7頁框和頁圖5.13頁框頁標題不同效果

5.7頁框和頁圖5.13頁框頁標題不同效果285.7頁框和頁對于形式4的頁框,還可用SpecialEffect屬性(0-凸起,1-凹下,2-平面)設置形式,用BorderWidth屬性設置邊寬,用BorderColor屬性設置邊顏色。頁面通過Caption屬性設置標題文本。在每一個頁面上可加入不同的對象,只有活動的頁面對象被顯示。同時還可在頁面區域的表單上加入對象,要讓其顯示出來,必須在屬性窗口的對象選擇列表框中先選中表單中的對象,然后單擊布局工具欄的“置前”圖形按鈕即可。不管活動頁面如何切換,置前操作后的表單對象都會顯示。頁面上加入和選擇對象步驟:先選頁框按右鍵在快捷菜單中選“編輯”選頁面選頁面上的對象。也可在屬性窗口的對象選擇列表框中直接選擇。頁面中對象的完整引用層次如下:THISFORM(或表名).頁框名.頁名.頁面對象名。但是,有時用相對引用更方便。下面說明幾個可能的引用情況:

(1)

同一頁面的不同對象引用 THIS.PARENT.引用對象名

(2)

不同一頁面的對象引用 THIS.PARENT.PARENT.引用對象名

5.7頁框和頁對于形式4的頁框,還可用SpecialEf295.7頁框和頁【例Ex_Edit3】按人員編號增刪改基本情況數據。

(1)設計表單界面

圖5.14增刪改基本情況數據界面(4)

5.7頁框和頁【例Ex_Edit3】按人員編號增刪改基本情305.7頁框和頁 上述界面上,使TxtBH、定位、追加、刪除等對象放在表單上。

數據環境中兩表的關聯:拖基本情況關聯字段“編號”到工資情況以“編號”作為關鍵字的索引。(2)

設置對象屬性

頁框(PageFrame1)屬性: PageCount=2 ActivePage=1

頁(Page1和Page2)屬性: Page1.Caption=基本情況 Page2.Caption=工資情況

圖5.15兩表的關聯數據環境

5.7頁框和頁 上述界面上,使TxtBH、定位、追加、刪315.8表格

表格(Grid)是按行和列操作和顯示的容器。一個表格對象包含若干列(Column)對象,每一個列對象包含一個表頭(Header)對象和一個或多個列數據操作對象。表頭對象用于列的標題的顯示內容和格式,數據操作對象是對列數據進行操作時所選用的控件。 一般自動加入一個文本框對象作為列數據操作對象,可加入其他控件對象。一個列中如有一個以上的數據操作對象,則應設置列對象的CurrentControl屬性確定當前使用哪一個。

5.8表格 表格(Grid)是按行和列操作和顯示的容器325.8表格5.8表格335.8表格

另外列可用InputMask,Format和Alignment等屬性控制數據的輸入內容、顯示格式和對齊方式。進行有條件的格式編排,可使用一組動態格式設置屬性。 在表格中不僅能顯示字段數據,還可以在表格的列中嵌入文本框、復選框、下拉列表框、微調按鈕和其他控件。 用戶可以在“表單設計器”中交互地在表格中增刪列和在列中交互式添加控件和刪除已加入列的控件。

l

表格中列的選擇

(1)

選擇表格對象按右鍵在快捷菜單中選“編輯”進入表格內對象的編輯。

(2)

單擊表頭即選擇該列中的表頭對象。單擊列的非表頭區即選擇該列對象。

(3)

可設置列的ControlSource為相應的字段名

5.8表格 另外列可用InputMask,Format和A345.8表格 l

表格中列的增刪和移動 選擇表格中的列,按Del鍵刪除該列。要增加列,僅需改變ColumnCount屬性值。要改變列的相對位置,僅需選擇列的表頭拖動。 l

在列中添加控件

(1)

選擇表格中的列。

(2)

選表單控件工具欄中的控件,然后單擊列對象,則該控件便加入到該列中。

(3)

設置該列的CurrentControl屬性設置為新加入的控件名。此時,在該列中可看到該控件的顯示圖標。 l

刪除列中控件

(1)

在“屬性”窗口的“對象”框中選擇要移去的控件。

(2)

單擊表格或表單標題,按下Delete鍵即可刪除該控件。 除了交互式地向表格列添加控件外,也可以通過編寫代碼在運行時添加控件。AddObject方法在表格列中添加對象,RemoveObject方法刪除表格中的對象。設置AllowHeaderSizing和AllowRowSizing屬性為.T.,使運行時可改變表頭和行的高度。 表格對象包含三層,表格中對象的完整引用層次如下: 表格上層引用.表格名.列名.表頭名 表格上層引用.表格名.列名.操作數據對象名 也可根據上面層次關系進行相對引用。

5.8表格 l

表格中列的增刪和移動355.8表格【例Ex_Grid】按姓名和部門過濾編輯基本情況數據。(1)設計表單界面 圖5.14姓名和部門過濾編輯表單界面

5.8表格【例Ex_Grid】按姓名和部門過濾編輯基本情況365.8表格

(2)

設置對象屬性Grid1.RecordSourceType=別名Grid1.RecordSource=基本情況Grid1.ColumuCount=8Column1.ControlSource=基本情況.編號Column1.Header.Caption=編號……部門組合框屬性: Name=cboBM cboBM.RowSourceType=字段cboBM.RowSourceT=部門工資.部門名稱姓名文本框屬性: Name=txtName確定命令按鈕屬性: Name=cmdOk(3)

編寫代碼*“確定”命令按鈕Click事件If!Empty(This.Parent.txtName.Value) Setfilterto基本情況.姓名=Trim(This.Parent.txtName.Value) This.Parent.grdJB.Refresh ReturnEndifIf!Empty(This.Parent.cboBM.Value) bm=Trim(This.Parent.cboBM.Value) Select部門工資 LocateFor部門名稱=bm bmbh=部門編號 Select基本情況 SetFilterToLeft(基本情況.編號,2)=bmbh This.Parent.grdJB.Refresh ReturnEndif5.8表格(2)

設置對象屬性If!Empty(375.8表格1.設置數據源(1)

設置表格記錄源 選擇表格,選擇“屬性”窗口的RecordSourceType。如果讓VFP打開一個表,則將RecordSourceType屬性設置為“0-表”。如果打算在表格中放入打開表的所有字段,則將RecordSourceType屬性設置為“-1別名”,選擇RecordSource屬性,鍵入作為表格記錄源的別名或表名。(2)

設置列數據源 如果在列中顯示一個指定字段,那么可以為列單獨設置其數據源。先選擇將要設置數據源的列,然后選擇其“屬性”窗口的ControlSource屬性。設置其值為相應的字段名。

2.添加記錄 將表格的AllowAdNew屬性設置為“真”(.T.),便可以允許用戶向表格顯示的表中添加新的記錄。當用戶選中了最后一個記錄,并且按下了下箭頭鍵時,表中就會添加一個新記錄。如使用APPENDBLANK或INSERT命令來添加新的記錄,此時應將AllowAdNew屬性設置為默認值(“假”)。

5.8表格1.設置數據源385.8表格3.創建一對多表單 表格最常見的用途之一是當表單中的文本框顯示父記錄數據時,表格顯示表的子記錄;當用戶在父表中瀏覽記錄時,表格子記錄顯示相應變化。 如果表單的數據環境包含兩表之間的一對多關系,那么要在表單中顯示這個一對多關系非常容易。 l

具有數據環境的一對多表單

(1)

從“數據環境”中的父表將需要的字段拖動到表單中。

(2)

從“數據環境”中將相關的表拖動到表格中。 l

沒有數據環境的一對多表單 (1)

在表單中加入若干個文本框,分別設置文本框的ControlSource屬性為主表的相應字段。

(2)

在表單中添加一個表格,將表格的RecordSource屬性設置為相關表(子表)的名稱。

(3)

設置表格的LinkMaster屬性為主表名稱。

(4)

設置表格的ChildOrder屬性為相關表中索引標識的名稱,索引標識和主表中的關系表達式相對應。 將表格的RelationalExpr屬性設置為聯接相關表和主表的表達式。5.8表格3.創建一對多表單395.8表格4.表格生成器 選擇“表格”控件的快捷菜單的“生成器”選項,啟動“表格生成器”。在“數據庫和表”的列表中選擇一個數據庫或表,若在其他目錄中選擇表,單擊“…”按鈕,選擇表并打開。VFP會自動將其所有字段放入表格項的“可用字段”列表中,用戶可以選擇所需字段添加至“選定字段”列表中。使用雙箭頭按鈕可將所有的可用字段一次性全部移入選定字段的列表中。 在“樣式”選項卡中,VFP提供了五種樣式,其默認值為“保留當前樣式”,另外4種為專業式、標準式、浮雕式、帳務式。當選擇其中一項時,左側的示例會顯示出所選擇的樣式范例。 在“布局”選項卡中,用戶可以調整和設置行列。 拖動列標題的右邊沿可調整列寬,拖動行的下左邊沿可調整行高。在“抬頭標題”中可為列設置其Caption(標題)屬性。在“控件類型”中可以改變列的控件類型。

5.8表格4.表格生成器405.9圖像框和圖片框

VFP中有圖像框(Image)、形狀(Shap)和線條(Line)控件。圖像框和圖形控件一般用于修飾表單,使界面美觀。 圖像框不能直接與表中存放圖像的字段直接綁定,但可通過文件間接顯示。圖5.15圖像框不同效果

5.9圖像框和圖片框 VFP中有圖像框(Image)、形415.9圖像框和圖片框 形狀控件通過設置其屬性可能基本實現表單中BOX和Circle方法完成的功能。

線條控件通過設置其屬性可部分實現表單中Line方法完成的功能。

圖5.16形狀控件不同效果

5.9圖像框和圖片框 形狀控件通過設置其屬性可能基本實現表425.10計時器

計時器(Timer)用于處理需用定時進行處理的事件。

計時器常用的事件為Timer事件,計時器常用的方法為Reset。在設計階段,設置Interval大于0,Enabled為.T.,則當表單啟動時計時器便開始計時。若Enabled為.F.,則計時器不會啟動。調用Reset方法可使計時器重新從0開始計時。 一般情況下,計時器時間間隔不能太小,否則頻繁產生Timer事件會降低系統的運行效率。另外,計時器控件不能自動直接實現定時中斷,例如若希望8點產生定時事件,應將8點時間與當前時間DateTime()進行相減換成毫秒數后作為Interval屬性值。

5.10計時器 計時器(Timer)用于處理需用定時進行處435.11微調按鈕

微調按鈕控件(Spinner)可以在一定范圍內控制數據的變化,同時又可象文本框一樣輸入數值數據。

微調按鈕常用事件如下:

DownClick事件:在點擊向下箭頭時產生;

UpClick事件:在點擊向上箭頭時產生;

InterActiveChange事件:微調按鈕數值改變時產生。

5.11微調按鈕 微調按鈕控件(Spinner)可以在一定445.11微調按鈕【例Ex_Spin】顯示時間,刷新時間可調。

圖5.17定時刷新界面

(2)

設置對象屬性 Text1.Value={} Spinner1.SpinnerHighValue=60 &&刷新的時間間隔不大于60秒 Spinner1.SpinnerLowHighValue=1 Spinner1.KeyBoardHighHighValue=60 Spinner1.KeyBoardLowHighValue=1(1)

設計表單界面 設計一個文本框(Text1)顯示時間,一個微調按鈕(Spinner1)用于控制刷新的時間間隔,一個命令按鈕(Command1)用于啟動時間顯示。

5.11微調按鈕【例Ex_Spin】顯示時間,刷新時間可調455.11微調按鈕

(3)

編寫事件代碼 *Command1的Click事件 THISFORM.Timer1.Interval=THISFORM.Spinner1.Value*1000 *Timer1的Timer事件 THISFORM.Text1.Value=Time()

一般情況下,微調控件值都是數值型,但是也可以將微調控件和文本框組合使用來微調多種類型的數值。 例如,可以將微調控件和文本框組合起來,使它能夠微調一定范圍內的日期。先把微調控件的大小作一調整,使不顯示它本身的數值框,然后在微調按鈕旁邊放置一個文本框,設置文本框的Value屬性為日期。在微調控件的UpClick和DownClick事件中輸入代碼,將文本框的值加減一個數值再送到文本框中,以實現用微調控件調整日期

5.11微調按鈕 (3)

編寫事件代碼465.12.1ActiveX控件(OLEControl)

ActiveX控件的功能是向應用程序中添加OLE對象,又稱為OLE控件。即把一個對象以鏈接或嵌入的方式包含在其他應用程序之中。可以通過ActiveX控件在自己的應用程序中使用其他的Windows應用程序,如Excel、Word等。 單擊表單控件工具欄中的“OLE容器控件”按鈕,并在“表單”窗口中將其拖至所期望的大小后松開,系統選擇插入對象。

圖5.18插入對象對話框

5.12.1ActiveX控件(OLEControl) 475.12.1ActiveX控件(OLEControl) l

新建 從系統提供的對象進行選擇后確定,可以將該OLE對象添加到表單。表單運行時單擊該對象即可進入所選對象的操作。` l

由文件創建 在用戶選擇插入對象的文件名插入該對象。Windows\SYSTEM目錄中可能包含ActiveX控件(帶有.OCX擴展名的文件)。 l

插入控件列出當前系統所有的ActiveX控件,用戶選擇后插入該對象。插入ActiveX控件對象可按下列步驟進行:

(1)

首先選“工具”菜單“選項”在顯示的下列對話框中選“控件”頁選“ActiveX控件”。在列出的ActiveX控件選擇本應用系統要使用的控件后確定。

5.12.1ActiveX控件(OLEControl) l485.12.1ActiveX控件(OLEControl)圖5.19選項對話框

5.12.1ActiveX控件(OLEControl)圖5495.12.1ActiveX控件(OLEControl)(2)

單擊“表單控件”中“查看類”(第二個)按鈕。系統顯示下列菜單:

(3)

“選ActiveX控件”,系統表單控件工具就變為在第1步中所選ActiveX控件圖標。

(4)用戶按系統提供的基本控件的方法進行操作。

注意:同VisualFoxPr06.0中文版一起發布的很多ActiveX控件是用來與其他應用

程序一起使用的。當把一個控件放在表單上,并按下F1鍵查看該控件的幫助信息時,所顯示的幫助是原來應用程序的,而不是VisualFoxPro6.0中文版的。如果將SysInfo控件放在表單上,按F1鍵將得不到該控件的幫助信息。

圖5.20表單控件

5.12.1ActiveX控件(OLEControl)(2505.12.2ActiveX綁定控件(OLEBoundControl)

ActiveX綁定控件與OLE容器控件一樣,可用于向應用程序中添加OLE對象,又稱OLE綁定控件。與OLE容器控件不同的是,OLE綁定型控件可綁定在一個通用字段上。綁定型控件是表單或報表上的一種控件,其中的內容與后端的表或查詢中的某一字段相關聯。單擊表單控件工具欄中“ActiveX綁定型控件”按鈕,可以在表單中創建一個綁定型OLE控件對象。在創建這個對象后,可以設置對象的ControlSource屬性,將它和表中的通用字段鏈接,然后便可以用這個對象顯示字段中的內容。例如,如果將Word文件保存在通用字段中,就可以在表中使用一個綁定型OLE對象顯示這些文件的內容。

5.12.2ActiveX綁定控件(OLEBoundCon51第5章控

5.1標簽

5.2文本框和編輯框

5.3命令按鈕和命令按鈕組

5.4列表框和組合框

5.5選項按鈕組

5.6復選框

5.7頁框和頁

5.8表格

5.9圖像框和圖片框

5.10計時器

5.11微調按鈕

5.12Active控件

第5章控件5.1標簽525.1標簽

標簽用于顯示文本,一般用于提示信息。顯示文本的格式由標簽的屬性設置。 通過上述屬性與標簽的其他屬性配合一般能夠滿足提示信息的各種要求。同時還能產 生許多的特殊效果。【例Ex_TextMove】 “歡迎”在屏幕上移動。

(1)

設計表單設置屬性 在表單上設計一個 標簽,屬性如下: Caption=歡迎 FontName=楷體_GB2312 FontSize=48 表5.1標簽常用屬性

FontBold=.T. ForeColor=255,0,0 Alignment=2

屬性功能Caption顯示文本內容,最多允許256個字符BackStyle指定背景是否透明。0-透明:可看到標簽后的東西1-不透明:背景由標簽設置AutoSize指定是否可自動調整標簽的大小。WordWrap顯示是否可換行。Alignment指定文本在標簽中的對齊方式。0-左1-右2-中央5.1標簽 標簽用于顯示文本,一般用于提示信息。顯示文本的535.1標簽(2)

編寫事件代碼*標簽的Click事件代碼

DOWHILE.T. FORI=1TOTHISFORM.WIDTHstep10 THIS.LEFT=I =INKEY(1) &&延時1秒 NEXTI ENDDO用標簽產生特殊效果的辦法:

(1)

字排多行

在需換行的地方加Chr(13)回車符。例如Caption=”歡”+Chr(13)+”迎”。

如果要改變字的方向,設FontName屬性為帶@的字體名。

(2)

字從小到大 用一個循環不斷改變標簽的FontSize,同時調整Top和Left的屬性值。 THIS.Top=THISFORM.HEIGHT/2-THIS.FontSize/2

(3)

立體字 設計兩個標簽,將另一個標簽的相對位置略加移動,ForeColor設置不同的顏色,就可產生立體字的效果。

5.1標簽(2)編寫事件代碼545.2文本框和編輯框

文本框(TextBox)用于顯示、輸入和修改數據。

例如,

將Value屬性設置為{},文本框的內容將會自動轉變為VFP系統默認的日期格式。

編輯框(EditBox)與文本框的功能類似,也是用于顯示、輸入和修改數據。其區別是文本框一般為一行,輸入的內容放不下會自動向左移動。當文本框的ControlSource與表字段數據源綁定時不能放內容太長的字段或備注字段。而編輯框則為若干行一個區域,當編輯框的ScrollBars屬性設為.T.,還可包含滾動條,因此更適合編輯較多文本內容。

另外,IntegralHeight屬性可控制編輯框的高度是否自動調整,以便其最后一項能被完整顯示。

5.2文本框和編輯框 文本框(TextBox)用于顯示、555.2文本框和編輯框文本框與編輯框有時會用到下列事件:When事件:在得到焦點之前發生;GotFocus事件:在得到焦點時發生;Valid事件:在失去焦點之前發生;LostFocus事件:在失去焦點后發生。圖5.4用戶登錄界面

例如,可在When事件代碼中保存文本框的原內容,可在Valid事件代碼中驗證文本框數據輸入內容的正確性。Valid事件中的RETURN返回.F.,則焦點不會移開。表單釋放時忽略RETURN值的影響。

【例Ex_Login】

在主程序Ex_txt1中先調用表單Ex_Login進行用戶登錄,如果用戶名和口令正確,調用表單Ex_EditGZ執行。(1)設計表單設置屬性

(2)設置屬性 口令文本框(txtPassWord)屬性PasswordChar=*5.2文本框和編輯框文本框與編輯框有時會用到下列事件: 例565.2文本框和編輯框(3)

編寫代碼 *表單的Activate事件代碼 THIS.txtPASSWORD.Enabled=.f. &&輸入登錄名后才能輸口令 THIS.txtNAME.SetFocus &&啟動后先輸入登錄名 *txtNAME文本框KeyPress事件代碼 LPARAMETERSnKeyCode,nShiftAltCtrl IFnKeyCode=13.AND.!EMPTY(THIS.VALUE) &&輸登錄名后回車即進入輸口令 THISFORM.txtPASSWORD.Enabled=.t. THISFORM.txtPASSWORD.SetFocus ENDIF *“確定(cmdOK)”按鈕的Click事件代碼

UNAME=THIS.PARENT.txtNAME.VALUE Yes=.F. DOCASE CASEUname="ZHANG".AND.TRIM(THISFORM.txtPASSWORD.VALUE)=="123456" Yes=.T.CASEUname="WANG".AND.TRIM(THISFORM.txtPASSWORD.VALUE)=="681266" Yes=.T.ENDCASE5.2文本框和編輯框(3)編寫代碼575.2文本框和編輯框

IfYes Messagebox(“登錄成功!”) Else Messagebox(“用戶名或口令不對!”) Endif THISFORM.Release CLEAREVENTS *“退出(cmdExit)”按鈕的Click事件代碼

THISFORM.Release CLEAREVENTS

*Ex_txt1.prg程序代碼

PUBLICYES SETDEFAULTTOD:\RY_MIS DOFORMEx_LOGIN READEVENTS IFYES DOFORMEx_EditGZ READEVENTS ENDIF CANCEL5.2文本框和編輯框 IfYes *Ex_txt1585.2文本框和編輯框【例Ex_TextCopy】將左邊編輯框中的選擇內容復制到右邊文本框中。也可在左邊編輯框自動選擇與右邊文本框內容相同的部分。

(1)

設計表單 表單包含下列對象:左邊編輯框Edit1,右邊文本框Text1,中間一個命令按鈕Command1。 圖5.5文本框內容復制界面

5.2文本框和編輯框【例Ex_TextCopy】將左邊編輯595.2文本框和編輯框

(2)設置對象屬性

(3)編寫事件代碼 *“->(Command1)”按鈕的Click事件代碼 THIS.Parent.Text1.Value=THIS.Parent.Edit1.SelText *編輯框Edit1的GotFocus事件代碼 EditBox::GotFocus

str1=Trim(This.parent.Text1.Value) d=At(str1,This.Value) Ifd>0 This.SelStart=d-1 ` This.SelLength=Len(str1) Else This.SelLength=0 Endif5.2文本框和編輯框(2)設置對象屬性 *編輯框E605.2文本框和編輯框 用戶可觀察和操作:

(1)

啟動后左邊編輯框的內容全部被選擇; (2)

用戶可在左邊編輯框重選部分內容后,選“->”命令按鈕,則選擇的內容在右邊編輯框中出現;(3)在右邊編輯框重輸左編輯框中包含的部分內容,單擊左編輯框,看與右邊編輯框相同的內容是否自動被選擇。

5.2文本框和編輯框 用戶可觀察和操作:615.3 命令按鈕和命令按鈕組

當表單需多個命令按鈕時,可使用命令按鈕組(CommandGroup)。命令按鈕組中各命令按鈕排列方向和位置根據需要進行調整。操作次序如下:

(1)

選命令按鈕組;

(2)

按右鍵,在快捷菜單中選“編輯”;

(3)

選命令按鈕后根據用戶需要進行調整。

也可在屬性窗口的對象選擇列表框中直接選擇命令按鈕組中各命令按鈕對象名。

5.3 命令按鈕和命令按鈕組 當表單需多個命令按鈕時,可使625.3 命令按鈕和命令按鈕組 說明表單中三個命令按鈕屬性設置情況:

(1)Caption=”確定”,單擊該按鈕可執行Click事件代碼。

(2)Caption=”\<C取消”,Cancel=.T.,單擊該按鈕、敲C鍵、按Esc鍵均可執行Click事件代碼。

(3)Picture=”d:\vfp98\fox.bmp”,單擊該按鈕可執行Click事件代碼。

命令按鈕中用得最多的事件為Click,命令按鈕組中有Click事件。選擇命令按鈕組中的命令按鈕時,如本身包含Click事件代碼,則就執行該代碼。如本身不包含Click事件代碼,則執行命令按鈕組Click事件代碼。圖5.6命令按鈕標題的三種情況

5.3 命令按鈕和命令按鈕組 說明表單中三個命令按鈕屬性設置635.3 命令按鈕和命令按鈕組【例Ex_EditGZ_Gcmd】將Ex_EditGZ表單(第二章)中的命令按鈕換成命令按鈕組,對比使用方法。(1)

修改界面5.3 命令按鈕和命令按鈕組【例Ex_EditGZ_Gcmd645.3 命令按鈕和命令按鈕組*CommandGroup1的Click事件代碼sel=This.ValueDOCASECASEsel=1 GOTOPCASEsel=2 IF!BOF() SKIP-1 ENDIFCASEsel=3 IF!EOF() SKIP ENDIFCASEsel=4 GOBOTTOMENDCASETHISFORM.REFRESH*退出(Command5)的Click事件代碼THISFORM.Release5.3 命令按鈕和命令按鈕組*CommandGroup1的655.3 命令按鈕和命令按鈕組【例Ex_Edit1】按人員編號增刪改基本情況數據。(1)

設計表單界面 新建表單打開數據環境將RY數據庫中的工資情況表添加到數據環境中拖數據環境的工資情況表的字段到表單中。 建立文本框txtBH用于輸入定位人員的編號,建立定位(cmdLOCATE)、追加和刪除三個命令按鈕。 圖5.8增刪改基本情況數據界面(1)

5.3 命令按鈕和命令按鈕組【例Ex_Edit1】按人員編號665.3 命令按鈕和命令按鈕組 (2)

設置對象屬性 設置TxtBH的屬性InputMask=99999。 字段文本框的ControlSource屬性如下: txt編號.ControlSource=基本情況.編號 txt姓名.ControlSource=基本情況.姓名 txt出生時間.ControlSource=基本情況.出生時間

(3)

編寫代碼 *“定位”命令按鈕的Click代碼 bh=Trim(This.Parent.txtBH.Value) jlh=recno() LocateFor編號=bh IfEof() Gojlh =MessageBox(“沒有找到該編號!”) Else Thisform.Refresh Endif*“追加”命令按鈕的Click代碼 AppendBlank Thisform.Refresh *“刪除”命令按鈕的Click代碼 yn=Messagebox(“是否要刪 除?",4+32)**未曾提過 Ifyn=6 Delete IfEof() Gotop Else Skip Endif Thisform.Refresh Endif5.3 命令按鈕和命令按鈕組 (2)設置對象屬性*“追675.3 命令按鈕和命令按鈕組(4)

可進一步考慮的問題§

在TxtBH文本框中輸回車也進行記錄定位*TxtBH文本框的VALID事件代碼IF!EMPTY(THIS.VALUE) THIS.PARENT.cmdLOCATE.Click&&打回車啟動定位事件代碼ELSE RETURN.F. &&TxtBH文本框為空不能離開ENDIF5.3 命令按鈕和命令按鈕組(4)可進一步考慮的問題685.4列表框和組合框

列表框(ListBox)主要用來選擇一組預定的數據,當選項內容在列表區域顯示不下時,可通過滾動條瀏覽列表的其他選項。

組合框(ComboBox)和列表框的功能類似,使用更靈活。實際上,組合框是由一個文本框和下拉列表框組成的。列表框在屏幕占用一個區域,而組合框則占用一行。如列表框或組合框包含多列,則ColumnCount屬性為列數,ColumnWidths屬性為列的寬度,BoundColumn屬性確定被選列表的哪一列作為Value屬性的值。另外,IntegralHeight屬性可控制列表框的高度是否自動調整,以便其最后一項能被完整顯示。

5.4列表框和組合框列表框(ListBox)主要用來選擇一695.4列表框和組合框【例Ex_List】列表框選擇多個項目練習。

(1)設計界面

(2)設置對象的屬性 List1對象的屬性: MoverBars=.T. MultiSelect=.T.(3)編寫事件代碼 *List1對象LostFouce事件 qm=""5.4列表框和組合框【例Ex_List】列表框選擇多個項目練705.4列表框和組合框(3)

編寫事件代碼 *List1對象LostFouce事件 qm="" FORI=1TOTHIS.ListCount IFTHIS.Selected(I) qm=qm+Trim(This.List(I))+"," Endif NextI Messagebox(qm) *“加入->”命令按鈕Click事件

QM=This.Parent.Text1.Value If!Empty(QM) No=.T. ForI=1To This.Parent.List1.ListCount IfThis.Parent.List1.List(I)=QM No=.F. Endif NextI IfNo This.Parent.List1.AddItem(QM) Thisform.Refresh Endif Endif*“<-移去”命令按鈕Click事件This.Parent.List1.Clear5.4列表框和組合框(3)編寫事件代碼 If715.4列表框和組合框【例Ex_Edit2】按人員編號增刪改基本情況數據。圖5.10增刪改基本情況數據界面(2)

“職稱”組合框: ControlSource =基本情況.職稱 RowSourceType=值 RowSource=政工師,工程師,助工

(1)設計表單界面

(2)設置對象屬性“文化程度”組合框: ControlSource=基本情況.文化程度 RowSourceType=值 RowSource=研究生,本科,大專,高中,初中 Style=25.4列表框和組合框【例Ex_Edit2】按人員編號增刪改基725.5 選項按鈕組 選項按鈕組是包含選項按鈕的容器控件。一般一個選項按鈕組可包含多個選項按鈕, 其特點是組中僅有一個選項按鈕被選中,當前選項按鈕被選中,先前被選中的被釋放。圓點指示當前被選中選項按鈕。選項按鈕組中各選項按鈕排列方向和位置根據用戶需要進行調整。

例如,

選擇選項按鈕組中選項按鈕操作次序如下:

(1)

選選項按鈕組;

(2)

按右鍵,在快捷菜單中選“編輯”;

(3)

選選項按鈕后根據用戶需要進行調整。

5.5 選項按鈕組 選項按鈕組是包含選項按鈕的容器控件。一735.5 選項按鈕組5.5 選項按鈕組745.5 選項按鈕組【例Ex_Edit2】按人員編號增刪改基本情況數據。(1)設計表單界面

(2)

設置對象屬性 “性別”選項按鈕組(OptionGroup1)有2個選項按鈕(Option1,Option2) Option1.Caption=男 Option2.Caption=女

(3)編寫代碼

圖5.11修改增刪 改基本情況數據界面(3)

*“性別”選項按鈕組(OptionGroup1)的Valid事件 IfThis.Value=1 Replace基本情況.性別With"男" Else Replace基本情況.性別With"女" Endif

5.5 選項按鈕組【例Ex_Edit2】按人員編號增刪改基本755.6復選框

復選框通常代表獨立的邏輯值。復選框由一個方框和標題說明組成。一般情況下,用空框來表示該選項未被選定,當用戶選定某一選項時,與該選項對應的方框中會出現打勾符號。

5.6復選框 復選框通常代表獨立的邏輯值。復選框由一個方框765.6復選框 復選框三種顯示格式如下圖所示:

復選框可通過ControlSource屬性與表的邏輯型字段進行綁定。例如,上例的婚否字段。 復選框是彼此獨立的,在一個表單中用戶可以設置多個復選框,在選擇時,可以選擇其中的一個或多個、甚至全部,也可以一個都不選。

5.6復選框 復選框三種顯示格式如下圖所示:775.7頁框和頁

頁框(PageFrame)是頁面(Page)的容器。頁框定義了頁面的大小、位置、邊框類型和活動頁面等總體特性。一個頁框可包含若干個頁面,而頁面本身也是一個容器,一個頁面又可包含若干個對象。通過頁面,大大展寬了表單的大小,并方便分類組織對象。頁框中通過頁面標題選擇頁面,當前被選中的頁面就是活動頁面。

5.7頁框和頁 頁框(PageFrame)是頁面(Pa785.7頁框和頁圖5.13頁框頁標題不同效果

5.7頁框和頁圖5.13頁框頁標題不同效果795.7頁框和頁對于形式4的頁框,還可用SpecialEffect屬性(0-凸起,1-凹下,2-平面)設置形式,用BorderWidth屬性設置邊寬,用BorderColor屬性設置邊顏色。頁面通過Caption屬性設置標題文本。在每一個頁面上可加入不同的對象,只有活動的頁面對象被顯示。同時還可在頁面區域的表單上加入對象,要讓其顯示出來,必須在屬性窗口的對象選擇列表框中先選中表單中的對象,然后單擊布局工具欄的“置前”圖形按鈕即可。不管活動頁面如何切換,置前操作后的表單對象都會顯示。頁面上加入和選擇對象步驟:先選頁框按右鍵在快捷菜單中選“編輯”選頁面選頁面上的對象。也可在屬性窗口的對象選擇列表框中直接選擇。頁面中對象的完整引用層次如下:THISFORM(或表名).頁框名.頁名.頁面對象名。但是,有時用相對引用更方便。下面說明幾個可能的引用情況:

(1)

同一頁面的不同對象引用 THIS.PARENT.引用對象名

(2)

不同一頁面的對象引用 THIS.PARENT.PARENT.引用對象名

5.7頁框和頁對于形式4的頁框,還可用SpecialEf805.7頁框和頁【例Ex_Edit3】按人員編號增刪改基本情況數據。

(1)設計表單界面

圖5.14增刪改基本情況數據界面(4)

5.7頁框和頁【例Ex_Edit3】按人員編號增刪改基本情815.7頁框和頁 上述界面上,使TxtBH、定位、追加、刪除等對象放在表單上。

數據環境中兩表的關聯:拖基本情況關聯字段“編號”到工資情況以“編號”作為關鍵字的索引。(2)

設置對象屬性

頁框(PageFrame1)屬性: PageCount=2 ActivePage=1

頁(Page1和Page2)屬性: Page1.Caption=基本情況 Page2.Caption=工資情況

圖5.15兩表的關聯數據環境

5.7頁框和頁 上述界面上,使TxtBH、定位、追加、刪825.8表格

表格(Grid)是按行和列操作和顯示的容器。一個表格對象包含若干列(Column)對象,每一個列對象包含一個表頭(Header)對象和一個或多個列數據操作對象。表頭對象用于列的標題的顯示內容和格式,數據操作對象是對列數據進行操作時所選用的控件。 一般自動加入一個文本框對象作為列數據操作對象,可加入其他控件對象。一個列中如有一個以上的數據操作對象,則應設置列對象的CurrentControl屬性確定當前使用哪一個。

5.8表格 表格(Grid)是按行和列操作和顯示的容器835.8表格5.8表格845.8表格

另外列可用InputMask,Format和Alignment等屬性控制數據的輸入內容、顯示格式和對齊方式。進行有條件的格式編排,可使用一組動態格式設置屬性。 在表格中不僅能顯示字段數據,還可以在表格的列中嵌入文本框、復選框、下拉列表框、微調按鈕和其他控件。 用戶可以在“表單設計器”中交互地在表格中增刪列和在列中交互式添加控件和刪除已加入列的控件。

l

表格中列的選擇

(1)

選擇表格對象按右鍵在快捷菜單中選“編輯”進入表格內對象的編輯。

(2)

單擊表頭即選擇該列中的表頭對象。單擊列的非表頭區即選擇該列對象。

(3)

可設置列的ControlSource為相應的字段名

5.8表格 另外列可用InputMask,Format和A855.8表格 l

表格中列的增刪和移動 選擇表格中的列,按Del鍵刪除該列。要增加列,僅需改變ColumnCount屬性值。要改變列的相對位置,僅需選擇列的表頭拖動。 l

在列中添加控件

(1)

選擇表格中的列。

(2)

選表單控件工具欄中的控件,然后單擊列對象,則該控件便加入到該列中。

(3)

設置該列的CurrentControl屬性設置為新加入的控件名。此時,在該列中可看到該控件的顯示圖標。 l

刪除列中控件

(1)

在“屬性”窗口的“對象”框中選擇要移去的控件。

(2)

單擊表格或表單標題,按下Delete鍵即可刪除該控件。 除了交互式地向表格列添加控件外,也可以通過編寫代碼在運行時添加控件。AddObject方法在表格列中添加對象,RemoveObject方法刪除表格中的對象。設置AllowHeaderSizing和AllowRowSizing屬性為.T.,使運行時可改變表頭和行的高度。 表格對象包含三層,表格中對象的完整引用層次如下: 表格上層引用.表

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論