如何在GRID中加入復選框?
*-----------------------------
方法一:
1、把GRID的列數改為>0 &&方法二不需要此項
2、右鍵單擊GRID,編輯,在工具條中把checkbox拿到要加入復選框的列中
3、右鍵單擊GRID,編輯,然后選擇加入復選框的列。
在屬性窗口上的“數據”頁(yè)面上把Grid的Colum(加入復選框的Column)的currentcontrol值改成check1,
然后根據你的需要修改Sparse的值,來(lái)指定 CurrentControl 屬性是影響列對象中的全部單元,還是僅影響列對象中的活動(dòng)單元。
方法二:在Grid的INIT事件中:
WITH This.column4
.addobject("Check1","CheckBox")
.currentcontrol='Check1'
.sparse=.f.
.Check1.Caption=''
.Check1.visible=.t.
ENDWITH
*******************************************************************
同理可向GRID中添加日歷控件及COMBOBOX 控件等
GRID的INIT事件
WITH This.column3
.addobject("Combo100","ComboBox")
.currentcontrol='Combo100'
.sparse=.f.
.Combo100.RowSourceType=0
.Combo100.visible=.t.
ENDWITH
select 表名 &&此表可以是Grid的數據源也可以不是Grid的數據源
scan
This.column3.Combo100.additem(字段名)
endscan
--------------------------------------------------------------------------
在表格列中顯示控件
除了在表格中顯示字段數據,還可以在表格的列中嵌入控件,這樣就為用戶(hù)提供嵌入的文本框、復選框、下拉列表框、微調按鈕和其他控件。例如,如果表中有一個(gè)邏輯字段,當運行該表單時(shí),通過(guò)辨認復選框可以判定哪個(gè)記錄值是“真”(.T.) 和哪個(gè)記錄值是“假”(.F.)。修改這些值只需設置或清除復選框即可。
可以在“表單設計器”中交互地向表格列中添加控件,也可以通過(guò)編寫(xiě)代碼在運行時(shí)刻添加控件。
若要交互地在表格列中添加控件
在表單中添加一個(gè)表格。
在“屬性”窗口中,將表格的 ColumnCount 屬性設置為需要的列數。
例如,如果需要一個(gè)兩列的表格則鍵入“2”。
在“屬性”窗口的“對象”框中為控件選擇父列。
例如,要選擇 Column1 來(lái)添加控件,當選擇這一列時(shí),表格的邊框發(fā)生變化,表明正在編輯一個(gè)包含其中的對象。
在“表單控件”工具欄中選擇所要的控件,然后單擊父列。
在“表單設計器”中,新控件不在表格列中顯示,但在運行時(shí)刻會(huì )顯示出來(lái)。
在“屬性”窗口中,要確保該控件縮進(jìn)顯示在“對象”框中父列下面。
添加到表格列中的復選框
如果新控件是一個(gè)復選框,應將復選框的 Caption 屬性設置為“ ”,并將列的 Sparse 屬性設置為“假”(.F.)。
將父列的 ControlSource 屬性設置為需要的表字段。
例如,下面的演示中,列的 ControlSource 屬性是文件 TESTDATA.DBC 的 products.discontinu,這個(gè)文件保存在 \Samples\VFP\DATA 目錄下。
將父列的 CurrentControl 屬性設置為新加入的控件。
當運行表單時(shí),這個(gè)控件將顯示在表格列中。
在運行時(shí)刻,復選框顯示在列中
提示 如果想讓復選框在表格列中居中,可先創(chuàng )建一個(gè)容器類(lèi),將復選框添加到容器類(lèi)中,并調整復選框在容器類(lèi)中的位置。然后將容器類(lèi)添加到表格列中,并將復選框的 ControlSource 屬性設置為需要的字段。
若要在“表單設計器”中移去表格列中的控件
在“屬性”窗口的對象框中選擇要移去的控件。
激活“表單設計器”。
如果“屬性”窗口可見(jiàn),控件的名稱(chēng)將顯示在“對象”框中。
按下 DELETE 鍵。
也可以在代碼中使用 AddObject 方法程序將控件添加到表格列中。
若要通過(guò)代碼將控件添加到表格列
請在表格的 Init 事件中,使用 AddObject 方法程序將控件添加到表格列,然后設置列的 CurrentControl 屬性。
例如,Init 事件包含了如下代碼,向列中添加兩個(gè)控件,并將其中一個(gè)設置為當前控件:
THIS.grcColumn1.AddObject("spnQuantity", "SPINNER")
THIS.grcColumn1.AddObject("cboQuantity", "COMBOBOX")
THIS.grcColumn1.CurrentControl = "spnQuantity"
* 下面的代碼確??丶强梢?jiàn)的,并且顯示在表格中的每一行。
THIS.grcColumn1.spnQuantity.Visible = .T.
THIS.grcColumn1.Sparse = .F.
在本例中,Column1 有三個(gè)可能的當前控件值:
spnQuantity
cboQuantity
Text1 (默認控件)
注釋 在表格級上設置的屬性并不會(huì )傳到列或標頭。因此,必須直接設置標頭或所包含控件的屬性,它們不會(huì )繼承列級別的屬性設置。
提示 要想在表格列中顯示組合框最佳狀態(tài),請設置下列組合框屬性∶
BackStyle = 0 && s-
Margin = 0
SpecialEffect = 1 && -G
BorderStyle = 0 && r
在表格中進(jìn)行有條件的格式設置
表格中的特定格式能讓用戶(hù)更容易瀏覽表格記錄,并找出想要的信息。如果想進(jìn)行有條件的格式設置,可使用列的動(dòng)態(tài)字體和顏色屬性。
例如,可以將表格添加到表單中,并將 ColumnCount 屬性設置為 2。將第一列的 ControlSource 屬性設置為 orders.to_name,第二列的 ControlSource 屬性設置為 orders.order_net。如果想用黑色的前景色顯示少于 500.00 的訂貨總計,用紅色的前景色顯示大于或等于 500.00 的訂貨總計,可在表格的 Init 事件代碼中包含下列代碼:
THIS.Column2.DynamicForeColor = ;
"IIF(orders.order_net >= 500, RGB(255,0,0), RGB(0,0,0))"
常用的表格屬性
下表列出了設計時(shí)刻常用的表格屬性。
屬性 說(shuō)明
ChildOrder 和父表的主關(guān)鍵字相聯(lián)接的子表中的外部關(guān)鍵字。
ColumnCount 列的數目。如果 ColumnCount 設置為 -1,表格將具有和表格數據源中字段數一樣多的列。
LinkMaster 顯示在表格中的子記錄的父表。
RecordSource 表格中要顯示的數據。
RecordSourceType 表格中顯示數據來(lái)源于何處:表、別名 、查詢(xún)或用戶(hù)根據提示選定的表
對于combo 組件﹐如果我只想讓用戶(hù)從下接框中選一個(gè)值﹐而不想用戶(hù)自已輸入﹐應如何設定combo的屬啊﹐﹐
我試了設定combo1.readonly = .t. 但結果下拉式框都打不開(kāi)了﹐﹐應如何設置呢 ﹖
將ComboBox的Style屬性設為2
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。