要么重寫這個控件的 OnPaint 事件,判斷 BorderStyle 屬性為 FixedSingle 的時候自繪其他顏色。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序定制開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了呼圖壁免費建站歡迎大家使用!
要么不重寫,把 BorderStyle 設(shè)為 None,直接在這個控件的 Paint 事件里自繪邊框,例如:
Private?Sub?Label1_Paint(sender?As?Object,?e?As?PaintEventArgs)?Handles?Label1.Paint
e.Graphics.DrawRectangle(Pens.Red,?New?Rectangle(Label1.DisplayRectangle.X,?Label1.DisplayRectangle.Y,?Label1.DisplayRectangle.Width?-?1,?Label1.DisplayRectangle.Height?-?1))
End?Sub
運行效果:
沒有辦法,如果你一定要這樣,就找個線條的圖片,用PictureBox控件顯示
1.DataGrid 控件是一種類似于電子數(shù)據(jù)表的綁定控件,可以顯示一系列行和列來表示 Recordset 對象的記錄和字段。可以使用 DataGrid 來創(chuàng)建一個允許最終用戶閱讀和寫入到絕大多數(shù)數(shù)據(jù)庫的應(yīng)用程序。DataGrid 控件可以在設(shè)計時快速進(jìn)行配置,只需少量代碼或無需代碼。當(dāng)在設(shè)計時設(shè)置了DataGrid 控件的 DataSource 屬性后,就會用數(shù)據(jù)源的記錄集來自動填充該控件,以及自動設(shè)置該控件的列標(biāo)頭。然后您就可以編輯該網(wǎng)格的列;刪除、重新安排、添加列標(biāo)頭、或者調(diào)整任意一列的寬度。
2.在運行時,可以在程序中切換 DataSource 來察看不同的表,或者可以修改當(dāng)前數(shù)據(jù)庫的查詢,以返回一個不同的記錄集合。
注意 DataGrid 控件與 Visual Basic 5.0中的 DBGrid 是代碼兼容的,除了一個例外:DataGrid 控件不支持 DBGrid 的“解除綁定模式”概念。DBGrid 控件包括在 Visual Basic 的 Tools 目錄中。
可能的用法
查看和編輯在遠(yuǎn)程或本地數(shù)據(jù)庫中的數(shù)據(jù)。
與另一個數(shù)據(jù)綁定的控件(諸如 DataList 控件)聯(lián)合使用,使用DataGrid控件來顯示一個表的記錄,這個表通過一個公共字段鏈接到由第二個數(shù)據(jù)綁定控件所顯示的表。
3.使用 DataGrid 控件的設(shè)計時特性
可以不編寫任何代碼,只通過使用 DataGrid 控件的設(shè)計時特性來創(chuàng)建一個數(shù)據(jù)庫應(yīng)用程序。下面的說明概要地說明了在實現(xiàn) DataGrid 控件的典型應(yīng)用時的一般步驟。完整的循序漸進(jìn)的指示,請參閱主題“DataGrid 方案1: 使用 DataGrid 控件創(chuàng)建一個簡單數(shù)據(jù)庫應(yīng)用程序”。
要在設(shè)計時實現(xiàn)一個 DataGrid 控件
1. 為要訪問的數(shù)據(jù)庫創(chuàng)建一個 Microsoft 數(shù)據(jù)鏈接 (.MDL) 文件。請參閱“創(chuàng)建 Northwind OLE DB 數(shù)據(jù)鏈接”主題,以獲得一個示例。
2. 在窗體上放置一個 ADO Data 控件,并將其 ConnectionString 屬性設(shè)置為在第 1 步中所創(chuàng)建的OLE DB 數(shù)據(jù)源。
3. 在這個 Ado Data 控件的 RecordSource 屬性中輸入一條將返回一個記
錄集的 SQL 語句。例如,Select * From MyTableName Where CustID = 12
4. 在窗體上放置一個 DataGrid 控件,并將其 DataSource 屬性設(shè)置為這個 ADO Data 控件。
5. 右鍵單擊該 DataGrid 控件,然后單擊“檢索字段”。
6. 右鍵單擊該 DataGrid 控件,然后單擊“編輯”。
7. 重新設(shè)置該網(wǎng)格的大小、刪除或添加網(wǎng)格的列。
8. 右鍵單擊該 DataGrid 控件,然后單擊“屬性”。
9. 使用“屬性頁”對話框來設(shè)置該控件的適當(dāng)?shù)膶傩裕瑢⒃摼W(wǎng)格配置為所需的外觀和行為。
在運行時更改顯示的數(shù)據(jù)
在創(chuàng)建了一個使用設(shè)計時特性的網(wǎng)格后,也可以在運行時動態(tài)地更改該網(wǎng)格的數(shù)據(jù)源。下面介紹實現(xiàn)這一功能的通常方法。
更改 DataSource 的RecordSource
更改所顯示的數(shù)據(jù)的最通常方法是改變該 DataSource 的查詢。例如,如果DataGrid 控件使用一個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
在運行時,可以將 DataSource 屬性重新設(shè)置為一個不同的數(shù)據(jù)源。例如,您可能具有若干個 ADO Data 控件,每個控件連接不同的數(shù)據(jù)庫,或設(shè)置為不同的 RecordSource 屬性。可以簡單地將 DataSource 從一個 ADO Data控件重新設(shè)置為另一個 ADO Data 控件:
' 將 DataSource 重新設(shè)置為一個連接到 Pubs 數(shù)據(jù)庫的、
' 使用 Authors 表的 ADO Data 控件。
Set DataGrid1.DataSource = adoPubsAuthors
重新綁定 DataSource
當(dāng)將 DataGrid 控件用于一個遠(yuǎn)程數(shù)據(jù)庫,諸如 SQLServer 時,可以改變表的結(jié)構(gòu)。例如,可以給這個表添加一個字段。在這種情形下,可以調(diào)用Rebind 方法根據(jù)新的結(jié)構(gòu)來重新創(chuàng)建該網(wǎng)格。注意,如果已經(jīng)在設(shè)計時改變了這個列的布局,DataGrid 控件將會試圖重新創(chuàng)建當(dāng)前的布局,包括任何空的列。不過,通過首先調(diào)用 ClearFields 方法,可以強制該網(wǎng)格重新設(shè)置所有的列。
從 DataGrid 返回值
在 DataGrid 被連接到一個數(shù)據(jù)庫后,可能想要監(jiān)視用戶單擊了哪一個單元。可以使用 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)一個列使用 NumberFormat 屬性設(shè)置格式后,CellText 和 CellValue 屬性是很有用的。NumberFormat 屬性不必更改實際的數(shù)據(jù)格式就可以更改任何包含數(shù)字的列的格式。例如,給定一個網(wǎng)格,其中包含一個名為 ProductID的、包含整數(shù)的列。下面的代碼將使 DataGrid 以"P-0000" 的格式來顯示數(shù)據(jù)。換句話說,盡管在 ProductID 字段中所包含的實際數(shù)值為 "3",但該網(wǎng)格所顯示的值將是 "P-0003"。
Private Sub Form_Load()
DataGrid1.Columns("ProductID").NumberFormat = "P-0000"
End Sub
要返回數(shù)據(jù)庫中所包含的實際值,應(yīng)使用 CellValue 方法,如下所示:
Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
Debug.Print _
DataGrid1.Columns("ProductID").CellValue(DataGrid1.Bookmark)
End Sub
這個必須用控件的方法解決,VB6有個Line控件很容易解決這個問題,但是VB.NET沒有了,幸好微軟也想到了這個缺陷,提供免費的Visual Basic PowerPacks控件箱,其中有Line控件。
Visual Basic PowerPacks下載地址:
使用 LineShape 控件繪制直線:
標(biāo)題名稱:vb.net的線條控件 vba窗體畫直線
文章起源:http://www.chinadenli.net/article8/dddjiop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、建站公司、網(wǎng)站改版、電子商務(wù)、Google、手機網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)