成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

.NET新手指南:輕松自定義DataGridView控件

譯文
開發(fā) 后端
.NET DataGridView是一個便于使用的數(shù)據(jù)綁定控件。本文為.NET新手介紹了如何使用.NET配置向?qū)B Express自定義DataGridView控件。只需非常簡單的修改以及一兩行代碼,便可以輕松實(shí)現(xiàn)交替顏色行,自定義排序功能以及顯示編輯行。這樣一個既可以瀏覽數(shù)據(jù)又可以編輯數(shù)據(jù)的窗體非常實(shí)用。

【51CTO快譯】在創(chuàng)建到外部數(shù)據(jù)的連接時,.NET配置向?qū)且粋€很好的開始,它不僅可以為你創(chuàng)建點(diǎn)擊式連接,還可以快速簡單地產(chǎn)生一個控件,用于用戶檢索、顯示和操作數(shù)據(jù),但向?qū)Ш苌佼a(chǎn)生用戶需要的功能的控件,你可能想對向?qū)Мa(chǎn)生的控件進(jìn)行調(diào)整——增加需要的功能。

本文的目標(biāo)讀者是.NET新手。首先講述如何創(chuàng)建一個新連接,然后講述如何自定義結(jié)果控件,使用Visual Basic Express(VB Express)配置向?qū)В疚膶⒚枋鋈绾翁畛銬ataGridView控件,然后按照以下步驟進(jìn)行提高:

1、行的顯示顏色交替,構(gòu)成一個綠色條效果;

2、禁用掉DataGridView內(nèi)置的單列排序功能;

3、執(zhí)行這個窗體時顯示編輯行。

開始

VB Express提供了許多方法檢索和操作外部數(shù)據(jù),例如,只需要運(yùn)行VB Express的配置向?qū)Ь涂梢越⒁粋€到MS Access 示例數(shù)據(jù)庫Northwind.mdb中Customers的連接:

1、啟動VB Express,然后在標(biāo)準(zhǔn)工具欄上點(diǎn)擊新建項(xiàng)目按鈕,在彈出的對話框中選擇Windows Form Application;

2、在名稱控件處輸入一個有意義的名字,點(diǎn)擊確定按鈕;

3、點(diǎn)擊解決方案資源管理器右下角的數(shù)據(jù)源標(biāo)簽,如果沒有看到這個標(biāo)簽,從“數(shù)據(jù)”菜單中選擇顯示數(shù)據(jù)源即可;

4、點(diǎn)擊新建數(shù)據(jù)源按鈕,啟動新建數(shù)據(jù)源配置向?qū)В?/P>

5、點(diǎn)擊下一步,數(shù)據(jù)庫選項(xiàng)保持默認(rèn)設(shè)置;

6、在下一個面板中點(diǎn)擊新建連接;

7、在彈出的新建連接對話框中,點(diǎn)擊修改,從彈出的修改數(shù)據(jù)源對話框中選擇Access數(shù)據(jù)庫文件,然后點(diǎn)擊確定按鈕;

8、在新建連接對話框中點(diǎn)擊瀏覽,找到Northwind.mdb的位置(在Office目錄的Samples文件夾下),然后點(diǎn)擊確定按鈕;

9、點(diǎn)擊測試連接,然后點(diǎn)擊確定按鈕清除確認(rèn)消息;

10、如果連接工作正常,點(diǎn)擊確定返回向?qū)Т翱冢缓簏c(diǎn)擊下一步繼續(xù);

11、VB Express會詢問你是否要拷貝數(shù)據(jù)庫,如果你選擇“是”,將會把整個數(shù)據(jù)庫拷貝到你的項(xiàng)目下,在這個例子中,我們選擇“否”;

12、接下來的面板中讓你將配置信息保存到配置文件中,默認(rèn)是要保存,點(diǎn)擊下一步即可(向?qū)z索數(shù)據(jù)庫對象,并在源文件中顯示它們,在這里你可以識別一下將要在.Net項(xiàng)目中檢索和操作的數(shù)據(jù));

13、點(diǎn)擊“+”號展開表節(jié)點(diǎn),選中Customers表,保留默認(rèn)的NorthwindDataSet,VB Express的數(shù)據(jù)集;

14、點(diǎn)擊完成,VB Express將會檢索指定的數(shù)據(jù)。

創(chuàng)建好連接后,還需要一個窗體來顯示數(shù)據(jù),請跟著我做:

1、點(diǎn)擊數(shù)據(jù)源標(biāo)簽;

2、點(diǎn)擊Form1標(biāo)簽,然后從數(shù)據(jù)源標(biāo)簽拖動Customers數(shù)據(jù)集到窗體設(shè)計(jì)器中的Form1上,VB Express將會產(chǎn)生一個DataGridView控件并自動命名,圖1顯示了結(jié)果窗體和窗體設(shè)計(jì)器中的網(wǎng)格。

配置向?qū)?chuàng)建的可以顯示數(shù)據(jù)的控件 
窗體和窗體設(shè)計(jì)器中的網(wǎng)格:配置向?qū)?chuàng)建的可以顯示數(shù)據(jù)的控件

3、從文件菜單中選擇保存所有,然后點(diǎn)擊保存按鈕。

至此,你已經(jīng)有一個來自Northwind數(shù)據(jù)庫的數(shù)據(jù)集,和一個顯示該數(shù)據(jù)的DataGridView控件及控件所在的窗體,所有需要做的就是運(yùn)行一下向?qū)А?/P>

#p#

行顯示顏色交替

***個增強(qiáng)是,使用向?qū)?chuàng)建的控件可以通過修改行的顏色提高易讀性,使用DataGridView時,可以很容易修改屬性:

1、在窗體設(shè)計(jì)器中,選擇DataGridView控件(不要雙擊,將會打開窗體的代碼頁);

2、在屬性窗口中,打開AlternatingRowsDefaultCellStyle屬性;

3、點(diǎn)擊BackColor屬性的下拉箭頭,顯示CellStyleBuilder對話框;

4、選擇一個與當(dāng)前顏色不同的顏色(默認(rèn)是白色),在這個例子中,選擇藍(lán)色,如圖2所示,然后點(diǎn)擊確定按鈕。

CellStyleBuilder對話框:選擇一個交替的行顏色 
CellStyleBuilder對話框:選擇一個交替的行顏色

5、按F5運(yùn)行程序,圖3顯示了使用交替顏色填充的網(wǎng)格控件。

填充好的網(wǎng)格控件:行的顏色在藍(lán)色和白色間交替使用 
填充好的網(wǎng)格控件:行的顏色在藍(lán)色和白色間交替使用

記住,只設(shè)置交替的一行的屬性顏色就可以了,不是要設(shè)置所有行的屬性,如果還想更多一點(diǎn)變化,相應(yīng)設(shè)置BackColor和ForeColor即可。

控制排序順序

最初,你產(chǎn)生的控件是按表的順序填充的,因?yàn)檫€沒有指定排序順序,然而,DataGridView是天生就支持排序的,只需要點(diǎn)擊標(biāo)題欄,控件就會以該欄升序排序記錄,再點(diǎn)擊一次就按降序排序,對于大多數(shù)控件而言,在填充控件時你都可以排序數(shù)據(jù):

1、在窗體設(shè)計(jì)器中,選擇CustomersBindingSource組件,將會在相應(yīng)的屬性窗口中更新其項(xiàng)目;

2、在窗口的底部,找到sort屬性,輸入city,如圖4所示。

找到Sort,輸入City:指定一個排序列 
找到Sort,輸入City:指定一個排序列

3、按F5運(yùn)行程序,正如你在圖5中所看到的,控件按照City值以升序排序記錄。如果想降序排列的話,只需要加上DESC關(guān)鍵詞就可以了,即輸入City DESC。

控件排序記錄:窗體通過City值排序記錄 
控件排序記錄:窗體通過City值排序記錄

你可能會禁止這個原生態(tài)的排序功能,但你需要為每個禁止排序的列編寫一小段代碼,例如,為了禁止Contact Title列的排序功能,請跟著我做:

1、在設(shè)計(jì)視圖窗體中,從視圖菜單選擇代碼,或按F7;

2、開始輸入代碼,很快你就會發(fā)現(xiàn)智能感應(yīng)不會顯示控件包含的列名,相反,它是按照位置顯示列名的,這不是引用列的***辦法;

3、為了修改DataGridView控件的列的默認(rèn)名稱,必須修改控件本身的Columns集合,在設(shè)計(jì)視圖中,雙擊網(wǎng)格(不是窗體),你可能需要稍微放大一下窗體,以便準(zhǔn)確選中一個網(wǎng)格,當(dāng)屬性標(biāo)題顯示CustomersDataGridView時,你就可以確定選中的是網(wǎng)格而不是窗體了;

4、定位Columns集合,然后點(diǎn)擊Builder按鈕,啟動編輯列對話框,如圖6所示。

點(diǎn)擊Builder按鈕:查看網(wǎng)格的Columns集合 
點(diǎn)擊Builder按鈕:查看網(wǎng)格的Columns集合

5、在選擇列控件中,選擇ContactTitle;

6、在設(shè)計(jì)區(qū)域(右下角),這個控件的Name屬性值是DataGridViewTextBoxColumn4,使用一個更有意義的名字替代它,這里我們輸入DataGridViewTextBoxContactTitle,如圖7所示。對那些不想設(shè)置的隱形列,將其Visible屬性設(shè)置為false即可。

為Name屬性輸入一個有意義的名稱 
為Name屬性輸入一個有意義的名稱

7、點(diǎn)擊確定返回代碼窗口(Form1.vb);

8、輸入下面的代碼:

  1. Me.DataGridViewTextBoxContactTitle.SortMode = DataGridViewColumnSortMode.NotSortable 

這一次智能感應(yīng)按名稱而不是位置列出了列,如圖8所示。

智能感應(yīng)按名稱列出了列:使用列名代替位置號 
智能感應(yīng)按名稱列出了列:使用列名代替位置號

9、保存所做的修改;

10、按F5執(zhí)行項(xiàng)目,在結(jié)果窗體中,點(diǎn)擊ContactTitle的標(biāo)題欄,這一次窗體不會排序記錄了,這是因?yàn)檩斎氲拇a禁用了排序功能。

#p#

顯示編輯行

目前,示例窗體顯示了91條記錄,此時如果用戶想要插入一行記錄,必須滾動窗體到編輯行,你可以通過編程讓窗體自動顯示編輯行,將下面的代碼添加到窗體的Load事件中,如圖9所示。

  1. Me.CustomersDataGridView.FirstDisplayedScrollingRowIndex = CustomersDataGridView.Rows.Count - 1 

在窗體的Load事件中添加代碼:強(qiáng)制窗體在載入時顯示編輯行 
在窗體的Load事件中添加代碼:強(qiáng)制窗體在載入時顯示編輯行

按F5運(yùn)行這個窗體,正如你在圖10中所看到的,這個窗體顯示了一些記錄和編輯行。

顯示記錄和編輯行的窗體:現(xiàn)在啟動窗體,可以看到顯示了編輯行 
顯示記錄和編輯行的窗體:現(xiàn)在啟動窗體,可以看到顯示了編輯行

這個語句從行數(shù)量減去一個1,這樣可以防止異常發(fā)生,因?yàn)榫庉嬓袥]有真正的索引,直到你點(diǎn)擊了它,即使它影響了行的數(shù)量。這個方法僅僅是確保***一行是可見的,所有的記錄仍然是可用的,現(xiàn)在窗體顯示的記錄條數(shù)與其容量緊密相關(guān),代碼不需要做任何修改。

通過禁用編輯行,這樣就將窗體改為瀏覽窗體了,不能再插入新的行了,要禁用編輯行,只需要在窗體的Load事件中添加一句:

  1. DataGridView1.AllowUserToAddRows = False 

將AllowUserToAddRows屬性設(shè)置True就啟用編輯行。

自定義控件使其更易用和靈活

自定義示例窗體并不需要花多少時間:

1、只需要簡單的修改就可以實(shí)現(xiàn)交替顏色行;

2、只需要一行代碼就可以禁用掉內(nèi)置的排序功能;

3、只需要一行代碼就可以顯示編輯行。

如果你是從Access或SQL Server轉(zhuǎn)過來的,當(dāng)你見識了可以創(chuàng)建和實(shí)現(xiàn)一個既可以瀏覽數(shù)據(jù)又可以編輯數(shù)據(jù)的窗體時,你一定會感到滿意。

原文:The .NET Newbie's Guide to Customizing the DataGridView Control

作者:Charlotte Foust, Susan Sales Harkins

【編輯推薦】

  1. C#中對DatagridView的部分常用操作
  2. ASP.NET窗體和ASP.NET MVC在同一應(yīng)用中混合使用
  3. ASP.NET中性能和擴(kuò)展性的秘密
  4. 淺談ASP.NET中ViewState與ViewData的區(qū)別
  5. ASP.NET 3.5圖表控件親密接觸
責(zé)任編輯:yangsai 來源: 51CTO.com
相關(guān)推薦

2022-05-16 15:37:32

開源軟件

2009-09-03 13:34:03

.NET自定義控件

2010-06-07 16:10:53

HadoopOnDem

2022-04-08 12:56:52

Linux終端命令

2025-01-13 07:15:00

Monorepo代碼倉庫中項(xiàng)目代碼管理

2009-08-06 17:13:56

ASP.NET自定義控

2009-07-28 09:32:41

ASP.NET自定義控

2009-08-10 14:16:59

ASP.NET自定義控

2010-06-21 12:39:56

OSPF路由協(xié)議

2023-03-01 08:00:00

機(jī)器學(xué)習(xí)數(shù)據(jù)集

2009-08-06 09:18:01

ASP.NET自定義控ASP.NET控件開發(fā)

2010-05-27 10:42:38

SVN配置文檔

2009-11-16 08:58:43

PHP語言

2009-07-31 10:23:09

ASP.NET源碼DateTimePic

2011-04-19 10:33:16

ASP.NET自定義控

2016-11-08 09:18:23

Docker.NET CoreLinux

2014-06-24 09:41:56

Android Stu教程

2011-08-23 10:11:10

LinuxTop命令

2010-08-04 09:06:21

Flex安裝

2023-03-15 09:46:07

R Markdown代碼語法
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 欧美一区二区二区 | 国产一区二区在线免费视频 | 婷婷综合 | 国产综合久久久久久鬼色 | 国产精品国产精品国产专区不卡 | 欧美无乱码久久久免费午夜一区 | 亚洲高清在线观看 | 欧美日韩亚洲一区二区 | 女生羞羞视频 | 国产伦精品一区二区三区在线 | 国产精品网址 | 亚洲激情网站 | 97久久超碰| 爱爱免费视频网站 | 久久成人18免费网站 | 伊人精品在线视频 | 成人精品免费视频 | 自拍偷拍精品 | 欧美精品video | 一区二区三区国产精品 | 免费国产一区二区 | 亚洲一区二区三区四区在线观看 | 久久久九九九九 | 亚洲美女视频 | 国产精品久久在线观看 | 国产视频亚洲视频 | 黄色精品视频网站 | 成人精品视频在线 | 亚洲综合一区二区三区 | 欧美一区二区三区在线观看视频 | 亚洲综合一区二区三区 | 国产日韩亚洲欧美 | 国产一区二区在线视频 | 色综合激情 | 欧美视频网 | 日韩精品在线一区 | 最新免费视频 | 日本免费一区二区三区四区 | 国产精品乱码一区二区三区 | 亚洲精品成人网 | 国产精品久久久久久久久久三级 |