PropertyGrid控件,工具箱子帶了,一般需要配合自定義控件使用,當(dāng)然你也可以默認(rèn)狀態(tài)使用
公司主營業(yè)務(wù):網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)公司推出應(yīng)城免費(fèi)做網(wǎng)站回饋大家。
但需要設(shè)置SelectedObject屬性,比如PropertyGrid1.SelectedObject = PropertyGrid1
vb2008的事例,點(diǎn)擊Button1就能得到圖示的效果
這個(gè)必須用控件的方法解決,VB6有個(gè)Line控件很容易解決這個(gè)問題,但是VB.NET沒有了,幸好微軟也想到了這個(gè)缺陷,提供免費(fèi)的Visual Basic PowerPacks控件箱,其中有Line控件。
Visual Basic PowerPacks下載地址:
使用 LineShape 控件繪制直線:
首先,你已經(jīng)完成的步驟是:
1.新建一個(gè)用戶控件[注意,用戶控件(UserControl)不是自定義控件(CustomControl)]
2.給用戶控件起個(gè)名字(我在此處起名叫 RadioList)
3.在用戶控件上畫一個(gè) GroupBox,命名為 RadioGroup,
并將其 Dock 屬性設(shè)置為 Fill
然后,你需要做的是動(dòng)態(tài)增減控件。
如果你以前用過 VB 6,你可能會(huì)想到控件數(shù)組,
但在此處,你可以直接增刪控件。
具體實(shí)現(xiàn)如下:
4.在 GroupBox 里畫一個(gè) FlowLayoutPanel,命名為 RadioPanel,
將其 AutoScroll 屬性設(shè)置為 True,即自動(dòng)顯示滾動(dòng)條,
并設(shè)置其 FlowDirection 屬性(例如設(shè)置為 TopDown)
這樣就省去了手動(dòng)調(diào)整 RadioButton 位置的麻煩
5.實(shí)現(xiàn)選項(xiàng)的動(dòng)態(tài)增減(以下只是我的思路,你可以發(fā)揮一下)
(十分簡潔,注釋除外):
''' summary
''' 創(chuàng)建一個(gè)新的 RadioButton。
''' /summary
Private Function CreateRadio() As RadioButton
Dim NewRadio As New RadioButton
components.Add(NewRadio)
'components 字段由控件設(shè)計(jì)器自動(dòng)創(chuàng)建,
'此代碼目的是使控件在銷毀(Dispose)時(shí)能自動(dòng)銷毀 RadioButton
'詳情參見 RadioList.Designer.vb
NewRadio.Parent = RadioPanel
'設(shè)置容器
AddHandler NewRadio.CheckedChanged, AddressOf RadioButtons_CheckedChanged
'設(shè)置事件處理程序
Return NewRadio
End Function
''' summary
''' 移除已存在的 RadioButton。
''' /summary
Private Sub RemoveRadio(ByVal dest As RadioButton)
components.Remove(dest)
dest.Dispose()
End Sub
'無中生有的 RadioButton 的事件處理程序
Private Sub RadioButtons_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
'在此處設(shè)置選中項(xiàng)的屬性,通過 sender 來確定不同的 OptionButton
'你可以通過將 OptionButton 放在一個(gè)列表,
'如 List(Of OptionButton) 中來像數(shù)組一樣維護(hù)選項(xiàng)的次序
'注意,此處需要判斷 sender 的 Checked 屬性是否為 True
'因?yàn)?Changed 是“改變”,而不是“選中”
'例如:
If DirectCast(sender, RadioButton).Checked Then
SelectedIndex = ...
End If
End Sub
1.DataGrid 控件是一種類似于電子數(shù)據(jù)表的綁定控件,可以顯示一系列行和列來表示 Recordset 對(duì)象的記錄和字段??梢允褂?DataGrid 來創(chuàng)建一個(gè)允許最終用戶閱讀和寫入到絕大多數(shù)數(shù)據(jù)庫的應(yīng)用程序。DataGrid 控件可以在設(shè)計(jì)時(shí)快速進(jìn)行配置,只需少量代碼或無需代碼。當(dāng)在設(shè)計(jì)時(shí)設(shè)置了DataGrid 控件的 DataSource 屬性后,就會(huì)用數(shù)據(jù)源的記錄集來自動(dòng)填充該控件,以及自動(dòng)設(shè)置該控件的列標(biāo)頭。然后您就可以編輯該網(wǎng)格的列;刪除、重新安排、添加列標(biāo)頭、或者調(diào)整任意一列的寬度。
2.在運(yùn)行時(shí),可以在程序中切換 DataSource 來察看不同的表,或者可以修改當(dāng)前數(shù)據(jù)庫的查詢,以返回一個(gè)不同的記錄集合。
注意 DataGrid 控件與 Visual Basic 5.0中的 DBGrid 是代碼兼容的,除了一個(gè)例外:DataGrid 控件不支持 DBGrid 的“解除綁定模式”概念。DBGrid 控件包括在 Visual Basic 的 Tools 目錄中。
可能的用法
查看和編輯在遠(yuǎn)程或本地?cái)?shù)據(jù)庫中的數(shù)據(jù)。
與另一個(gè)數(shù)據(jù)綁定的控件(諸如 DataList 控件)聯(lián)合使用,使用DataGrid控件來顯示一個(gè)表的記錄,這個(gè)表通過一個(gè)公共字段鏈接到由第二個(gè)數(shù)據(jù)綁定控件所顯示的表。
3.使用 DataGrid 控件的設(shè)計(jì)時(shí)特性
可以不編寫任何代碼,只通過使用 DataGrid 控件的設(shè)計(jì)時(shí)特性來創(chuàng)建一個(gè)數(shù)據(jù)庫應(yīng)用程序。下面的說明概要地說明了在實(shí)現(xiàn) DataGrid 控件的典型應(yīng)用時(shí)的一般步驟。完整的循序漸進(jìn)的指示,請(qǐng)參閱主題“DataGrid 方案1: 使用 DataGrid 控件創(chuàng)建一個(gè)簡單數(shù)據(jù)庫應(yīng)用程序”。
要在設(shè)計(jì)時(shí)實(shí)現(xiàn)一個(gè) DataGrid 控件
1. 為要訪問的數(shù)據(jù)庫創(chuàng)建一個(gè) Microsoft 數(shù)據(jù)鏈接 (.MDL) 文件。請(qǐng)參閱“創(chuàng)建 Northwind OLE DB 數(shù)據(jù)鏈接”主題,以獲得一個(gè)示例。
2. 在窗體上放置一個(gè) ADO Data 控件,并將其 ConnectionString 屬性設(shè)置為在第 1 步中所創(chuàng)建的OLE DB 數(shù)據(jù)源。
3. 在這個(gè) Ado Data 控件的 RecordSource 屬性中輸入一條將返回一個(gè)記
錄集的 SQL 語句。例如,Select * From MyTableName Where CustID = 12
4. 在窗體上放置一個(gè) DataGrid 控件,并將其 DataSource 屬性設(shè)置為這個(gè) ADO Data 控件。
5. 右鍵單擊該 DataGrid 控件,然后單擊“檢索字段”。
6. 右鍵單擊該 DataGrid 控件,然后單擊“編輯”。
7. 重新設(shè)置該網(wǎng)格的大小、刪除或添加網(wǎng)格的列。
8. 右鍵單擊該 DataGrid 控件,然后單擊“屬性”。
9. 使用“屬性頁”對(duì)話框來設(shè)置該控件的適當(dāng)?shù)膶傩?,將該網(wǎng)格配置為所需的外觀和行為。
在運(yùn)行時(shí)更改顯示的數(shù)據(jù)
在創(chuàng)建了一個(gè)使用設(shè)計(jì)時(shí)特性的網(wǎng)格后,也可以在運(yùn)行時(shí)動(dòng)態(tài)地更改該網(wǎng)格的數(shù)據(jù)源。下面介紹實(shí)現(xiàn)這一功能的通常方法。
更改 DataSource 的RecordSource
更改所顯示的數(shù)據(jù)的最通常方法是改變該 DataSource 的查詢。例如,如果DataGrid 控件使用一個(gè)ADO Data控件作為其 DataSource,則重寫RecordSource和刷新該ADO Data 控件都將改變所顯示的數(shù)據(jù)。
' ADO Data 控件連接的是 Northwind 數(shù)據(jù)庫的' Products 表。新查詢查找所有
' SupplierID = 12 的記錄。
Dim strQuery As String
strQuery = "SELECT * FROM Suppliers WHERE SupplierID = 12"
Adodc1.RecordSource = strQuery
Adodc1.Refresh
更改 DataSource
在運(yùn)行時(shí),可以將 DataSource 屬性重新設(shè)置為一個(gè)不同的數(shù)據(jù)源。例如,您可能具有若干個(gè) ADO Data 控件,每個(gè)控件連接不同的數(shù)據(jù)庫,或設(shè)置為不同的 RecordSource 屬性??梢院唵蔚貙?DataSource 從一個(gè) ADO Data控件重新設(shè)置為另一個(gè) ADO Data 控件:
' 將 DataSource 重新設(shè)置為一個(gè)連接到 Pubs 數(shù)據(jù)庫的、
' 使用 Authors 表的 ADO Data 控件。
Set DataGrid1.DataSource = adoPubsAuthors
重新綁定 DataSource
當(dāng)將 DataGrid 控件用于一個(gè)遠(yuǎn)程數(shù)據(jù)庫,諸如 SQLServer 時(shí),可以改變表的結(jié)構(gòu)。例如,可以給這個(gè)表添加一個(gè)字段。在這種情形下,可以調(diào)用Rebind 方法根據(jù)新的結(jié)構(gòu)來重新創(chuàng)建該網(wǎng)格。注意,如果已經(jīng)在設(shè)計(jì)時(shí)改變了這個(gè)列的布局,DataGrid 控件將會(huì)試圖重新創(chuàng)建當(dāng)前的布局,包括任何空的列。不過,通過首先調(diào)用 ClearFields 方法,可以強(qiáng)制該網(wǎng)格重新設(shè)置所有的列。
從 DataGrid 返回值
在 DataGrid 被連接到一個(gè)數(shù)據(jù)庫后,可能想要監(jiān)視用戶單擊了哪一個(gè)單元??梢允褂?RowColChange 事件——而不是 Click 事件。如下所示:
Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
' 顯示用戶所單擊的單元的文字、行和列的信息。
Debug.Print DataGrid1.Text; DataGrid1.Row; DataGrid1.Col
End Sub
使用 CellText 和 CellValue 方法
當(dāng)一個(gè)列使用 NumberFormat 屬性設(shè)置格式后,CellText 和 CellValue 屬性是很有用的。NumberFormat 屬性不必更改實(shí)際的數(shù)據(jù)格式就可以更改任何包含數(shù)字的列的格式。例如,給定一個(gè)網(wǎng)格,其中包含一個(gè)名為 ProductID的、包含整數(shù)的列。下面的代碼將使 DataGrid 以"P-0000" 的格式來顯示數(shù)據(jù)。換句話說,盡管在 ProductID 字段中所包含的實(shí)際數(shù)值為 "3",但該網(wǎng)格所顯示的值將是 "P-0003"。
Private Sub Form_Load()
DataGrid1.Columns("ProductID").NumberFormat = "P-0000"
End Sub
要返回?cái)?shù)據(jù)庫中所包含的實(shí)際值,應(yīng)使用 CellValue 方法,如下所示:
Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
Debug.Print _
DataGrid1.Columns("ProductID").CellValue(DataGrid1.Bookmark)
End Sub
Option?Explicit
Private?WithEvents?NewTextBox?As?TextBox
'通過使用WithEvents關(guān)鍵字聲明一個(gè)對(duì)象變量為新的命令按鈕
Private?Sub?Command1_Click()
If?NewTextBox?Is?Nothing?Then
Set?NewTextBox?=?Controls.Add("VB.TextBox",?"cmdNew",?Form1)
NewTextBox.Move?200,?200
NewTextBox.Width?=?Form1.Width?-?450
NewTextBox.Height?=?Form1.Height?-?1400
NewTextBox.Visible?=?True
End?If
End?Sub
Private?Sub?Command2_Click()
If?NewTextBox?Is?Nothing?Then
Exit?Sub
Else
Controls.Remove?NewTextBox
Set?NewTextBox?=?Nothing
End?If
End?Sub
工具箱點(diǎn)右鍵,選擇項(xiàng).
如果你能問得具體點(diǎn)可能我會(huì)更好回答!