VCL元件之列表框(ListBox)與組合框(ComboBox)
ListBox元件與ComboBox元件
列表框與組合框元件也被廣泛的使用。列表框表示標準Windows列表框,它提供使用者選的一列選擇表。如果列表框包含更多的項,不能一次顯示,滾動欄提供存取列表框中其餘項。
New Term
一些列表框(list boxes)是自繪(Owner-Draw)表框,在自繪列表框中,程式設計師負責從表框中畫表項。
如果需要,可以自繪列表框,也許沒有人意識到,自繪列表框相當普遍,Delphi中的ToolBar Editor對話方塊包含兩個列表框,如下圖:
左邊1號表框是普通的列表框,它列出能選擇的可能按鈕組。右邊2號列表框是自繪列表框,它顯示出現在工具欄上的實際按鈕,同時顯示了按鈕的文字描述。
組合框是特殊化的列表框,實際上組合框是列表框與編輯控制元件的組合。使用者可以從列表中選擇或者在編輯框中輸入一個值。當使用者從下拉選單中選擇項時,該項放到了編輯控制元件中。有五種不同型別的組合框。組合框的不同型別由Style屬性決定。
組合框型別
- csDropDown——預設值,下拉組合框。使用者可以從列表中選擇一個條目,或在編輯區中輸入新項。這種型別的ComboBox可進行查詢,即輸入1個或多個字元並按上下鍵可以選擇與使用者輸入字元最相匹配的條目。
- csSimple——一個不含下拉箭頭的簡單組合框,使用者可以用鍵盤上的上下方向鍵選擇一個條目,或在編輯區域輸入新的條目
- csDropdownList——下拉選單組合框,在這種型別的組合框中,編輯框是“只讀”的,使用者必須選擇一個條目,但也可鍵入條目第一個字母選擇它。例如,鍵入P鍵可選擇所有以P打頭的條目。
- csOwnerDrawFixed——條目不一定是字串,可以是自繪影象,在顯示每一項之前,都會觸發OnDrawItem事件。項的高度由ItemHeight屬性指定。
- csOwnerDrawVariable——條目是可以是自繪影象,高度是可變的。在顯示每一項之前,都會觸發兩個事件。在OnMeasureItem事件響應中,我們可以指定項的高度。在OnDrawItem事件控制程式碼中畫出每一項。
下面我們有一個ComboTst的程式,說明了不同型別的組合框,執行程式實際操作一下感受下它們是怎樣工作的:
ComboTst程式下載:ComboTst.rar
編輯控制元件的屬性
屬性 | 應用 | 描述 |
Columns | ListBox | 指定在一欄中的條目列數,預設值為0 |
ExtendedSelection | ListBox | 使用者能否選擇一系列連續的條目,Shift+Click或Ctrl+Click。預設值為True |
IntegralHeight | ListBox | 是否允許只顯示出條目標題的一部分,如果設為False,那麼列表框的高度總是一項高度的整數倍,不會出現顯示不完整的情況。預設值為False |
ItemHeight | Both | 指定條目標題的高度,預設值為13 |
Items | Both | 包含所有條目的字串列表,TStrings例項 |
MaxLength | ComboBox | 指定使用者可以在編輯區輸入的最大字元數,預設為0,表示無限制 |
MultiSelect | ListBox | 使用者能否多選,和ExtendedSelection屬性配合使用 |
Sorted | Both | 指定列表框中的條目是否按字母順序排列 |
Style | Both | 指定列表框的樣式 |
TabWidth | ListBox | 指定列表框中一個製表符所佔畫素值 |
Text | ComboBox | 用於設定或返回ComboBox上顯示出來的文字,對於csSimple和csDropDown型別的組合框,使用者可以直接修改文字,對於其他型別的組合框,Text是在執行期有效的只讀屬性。 |
執行期屬性
屬性 | 應用 | 描述 |
ItemIndex | ListBox | 返回當前被選擇的條目序號,如果有多個條目被選擇,則返回當前有輸入焦點的條目索引值,如果無選擇專案返回-1,第一項為0 |
SelCount | ListBox | 返回同時被選取的條目數目 |
Selected | ListBox | 用於判斷指定索引號條目是否被選擇 |
SelLength | ComboBox | 返回使用者在編輯區選定的字元數 |
SelStart | ComboBox | 返回使用者在編輯區選定字元的起點序號,從0開始 |
SelText | ComboBox | 返回使用者編輯區中選擇的文字 |
TopIndex | ListBox | 指定顯示在列表框最上方的條目的序號 |
對於以前看到的編輯元件,有極少的ListBox和ComboBox方法。
- Clear方法用於清除控制元件的所有項。
- ItemAtPos方法返回指定X,Y座標的列表項。
- SelectAll方法選擇ComboBox中編輯框的文字。
在處理組合框和列表框時最常用的事件就是OnChange與OnClick事件。用這些事件決定在列表框中是否選擇了某一項。
Note
點選組合框的編輯部分或下拉按鈕不會產生OnClick事件。只有在組合框的列表框部分點選時才會發生OnClick事件。
- OnChange事件用來檢查組合框的編輯部分的變化,就像用於編輯控制元件一樣。
- OnDropDown事件用於組合框的下拉按鈕被點選時檢查。
- OnMeasureItem和OnDrawItem都用於自繪列表框與自繪組合框。
分類:
VCL
相關文章
- C++ Qt開發:ComboBox下拉組合框元件C++QT元件
- C++ Qt 開發:ListWidget列表框元件C++QT元件
- C/C++ Qt ListWidget 列表框元件應用C++QT元件
- 自繪製HT For Web ComboBox下拉框元件Web元件
- c#之combox下列列表框與datagridview及datagridviewtextboxcolumn關聯顯示C#View
- java列表框(JList和JComboBox)使用Java
- Flutter 實現webview與原生元件組合滑動FlutterWebView元件
- Android自定義控制元件之自定義組合控制元件Android控制元件
- 利用MFC程式設計在工具條中增加組合框控制元件 (轉)C程式程式設計控制元件
- Ajax 應用模板(動態載入列表框)
- 機器學習之特徵組合:組合獨熱向量機器學習特徵
- 易語言陣列和超級列表框demo陣列
- 組合數學筆記-排列與組合筆記
- 【組合控制元件】android自定義控制元件之帶文字的ImageView控制元件AndroidView
- Silverlight 之ComboBox控制元件選中項控制元件
- Android自定義組合控制元件之自定義屬性Android控制元件
- VCL介面控制元件DevExpress VCL釋出v17.2.8|附下載控制元件devExpress
- 組合控制元件的佈局控制元件
- 使用 Redux-Arena 組合 React 元件ReduxReact元件
- 如何實現條件組合元件元件
- 繼承與組合繼承
- 自制支援檔案拖放的VCL元件 (轉)元件
- Project JEDI VCL元件編碼標準 (轉)Project元件
- 【WPF】-ComboBox控制元件詳解控制元件
- 【轉載】Python字串操作之字串分割與組合Python字串
- c# combobox控制元件的使用C#控制元件
- 【版本升級】VCL介面控制元件DevExpress VCL釋出v17.2.6|附下載控制元件devExpress
- VCL介面控制元件DevExpress VCL Controls v17.2.2釋出|附下載控制元件devExpress
- 【原創】開源.NET排列組合元件KwCombinatorics使用(一)—組合生成元件
- css實現四種常見邊框內外角組合CSS
- VCL介面控制元件DevExpress VCL Controls釋出v18.1.3|附下載控制元件devExpress
- 索引與null(二):組合索引索引Null
- WPF ListBox ListBox.ItemTemplate DataTemplate
- 窗體(隨機數,列表框,標籤,按鈕,修改窗體名字)隨機
- easyui利用combobox實現下拉框簡單介紹UI
- FastReport VCL報表控制元件教程:元件編輯器寫作AST控制元件
- 組合模式-統一的處理個別物件與組合物件模式物件
- (轉)使用一個下拉框或文字框+列表框的方式實現類似IE位址列自動完成的功能