999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

DataGridView格式化代碼自動生成方法

2019-10-08 07:45:24馬玉春劉雍陳德祥
軟件 2019年1期
關鍵詞:界面設置用戶

馬玉春 劉雍 陳德祥

摘? 要: DataGridView控件可以很方便地以非綁定方式顯示數據,也可以綁定到數據表用來顯示和修改數據,并可以將數據直接復制粘貼到Excel表格中。根據DataGridView的屬性和方法,設計了一種格式化代碼的自動生成方法,一次性將DataGridView界面調整到位。

關鍵詞: DataGridView;代碼;自動

中圖分類號: TP311. 56? ? 文獻標識碼: A? ? DOI:10.3969/j.issn.1003-6970.2019.01.003

【Abstract】: DataGridView can display the unbound data easily, and the bound data can be displayed with modification quickly, and both of them can be copied into Excel table. According to the attributes and methods of DataGridView, a method which used to adjust user interface only once of generating formatted code automatically is proposed.

【Key words】: DataGridView; Code; Automatically

0? 引言

DataGridView控件界面友好,用來方便地顯示綁定和非綁定數據,可以直接修改表格中的數據并保存到數據庫[1]。但是,在調整用戶界面的時候,需要經過多次反復。本文從DataGridView的特點和屬性出發,先設計基本的界面風格,然后通過手動調整行高和各列的列寬,最后通過代碼進行計算,輸出各列的列寬、行高和DataGridView對象(假設對象名為dgv)的寬度和高度,將這些代碼放入窗體的裝載方法中或者用來設置其屬性。文獻[2]實現了一個通用的Access數據庫類,本文利用此類填充dgv的數據集(通過屬性DataSource),從而完成一個DataGridView模板。

1? 外觀屬性

DataGridView的外觀屬性用來設置其可視化的外觀,其中GridColor 屬性用于設置網格線的顏色。CellBorderStyle屬性用于設置普通單元格的邊框樣式,通過該屬性可以確定只顯示水平網格線(Single Horizontal)或垂直網格線(SingleVertical)。Column HeadersBorderStyle 屬性用于設置列標題的邊框樣式,RowHeadersBorderStyle屬性用于設置行標題的邊框樣式[3],這些屬性一般使用默認值。

RowHeadersVisible 屬性表示行標題是否可見,ColumnHeadersVisible 屬性表示列標題是否可見,一般使用默認值True. ColumnHeadersHeight屬性表示列標題所在行的高度,一般用像素表示。

AlternatingRowsDefaultCellStyle屬性用于定義交替行樣式。在設計器中選擇DataGridView 控件,在“屬性”窗口中,單擊AlternatingRows DefaultCellStyle屬性旁的省略號按鈕,在“Cell Style 生成器”對話框中,通過設置屬性定義樣式,再使用“預覽”窗格確認選擇[4]。這樣,用戶所指定的樣式將用于控件中顯示的每一個交替行(從第二行開始)。若要定義其余各行的樣式,只要使用 RowsDefaultCellStyle屬性重復以上兩個步驟即可。

在調整DataGridView窗體界面前,一般先設計好符合用戶需求的外觀屬性。而外觀屬性Row Template是行模板屬性,其中的 Height 子屬性是整個數據行的行高屬性,即默認情況下,Height 值是每一行的高度。RowTemplate屬性值將在在程序運行時進行手動調整,然后通過調試命令在即時窗口中自動輸出。

2? 布局屬性

常用且需要修改的布局屬性主要包括Location 屬性和Size屬性,前者規定了DataGridView控件的左上角的位置,后者規定了控件的大小(寬度Width和高度Height)。確定Location比較簡單,只要拖拽控件,放到一個合適的起始位置即可,這樣即可確定Location了。但是,Size屬性的確定通常需要考慮多種因素[5]。

填充數據后的DataGridView控件包括列標頭所在的行和數據記錄所在的行。列標頭所在行的高度(ColumnHeadersHeight屬性)與所要顯示的數據行的高度(DataGridView控件的Rows集合的Height 值)累加,就是 DataGridView 控件的Size屬性的 Height值(這里不考慮水平滾動條占據的行高)。如果Height值設置不合理,有可能在DataGridView 控件的底部出現半行記錄,這樣就顯得不美觀了。

DataGridView控件行標頭所在的列,其寬度通過RowHeadersWidth屬性來表示。DataGridView控件的寬度Width為RowHeadersWidth與各數據列寬度(DataGridView控件的Columns集合的Width值)之和,還要加上垂直滾動條的寬度,因為一般數據庫的記錄數較多,需要通過垂直滾動條來瀏覽記錄[6]。

ScrollBars 屬性指明滾動條的需求情況,默認為 Both,表示需要水平(Horizontal)和垂直(Vertical)滾動條,一般不更改此默認值。但是,只要DataGridView控件的寬度足夠容納所有列(行標頭列和數據列)和垂直滾動條,水平滾動條就不可見;同理,只要DataGridView 控件的高度足夠顯示所有記錄行,垂直滾動條就不可見。

布局屬性值將在程序運行時進行手動調整,然后通過調試命令在即時窗口中自動輸出。

3? 行為屬性

行為屬性主要控制用戶的行為,即是否允許或禁止某些操作,這些屬性一般是布爾類型。AllowUserToAddRows獲取或設置一個值,該值指示是否向用戶顯示添加行的選項,默認值為True;如果只是讓用戶查看,不允許用戶修改,則設置為 False。AllowUserToDeleteRows獲取或設置一個值,該值指示是否允許用戶從DataGridView中刪除行。AllowUserToOrderColumns獲取或設置一個值,該值指示是否允許通過手動對列重新排序。

AllowUserToResizeColumns獲取或設置一個值,該值指示用戶是否可以調整列的大小;Allow UserToResizeRows獲取或設置一個值,該值指示用戶是否可以調整行的大小。在程序設計與調試期間,這兩個值一般設置為True,用以調整大小,確定美觀的具體數值。程序通過調試后,一般設置為 False,以免用戶將程序界面弄亂[7]。

ColumnHeadersHeightSizeMode獲取或設置一個值,該值指示是否可以調整列標題的高度,以及它是由用戶調整還是根據標題的內容自動調整。AutoSize表示自動調整(默認值),EnableResizing 表示允許用戶調整,DisableResizing表示禁止用戶調整。一般情況下,采用默認值即可。如果需要精確控制界面的美觀,可以在程序設計與調試階段將該屬性設置為EnableResizing,待確定好列標題的合適高度后,再將該屬性設置為DisableResizing即可。

4? 代碼自動生成

為了方便實現代碼自動生成,設置一個布爾變量debugEnable,在調試界面的階段,將該值設置為True,允許上一節的行為屬性,這樣可以手動調整界面;在界面設計完成后,禁止行為屬性,不能手動調整界面。將窗體盡量拉大,也使得dgv足夠大,然后運行程序,與使用 Microsoft Office Excel 工具類似的方法去調整dgv的列寬與行高。調整完畢,如對界面滿意,可點擊有效記錄的有效單元格。此時,產生一個CellClick事件,在該事件中輸出代碼和屬性值[8]。

在dgv的CellClick事件處理程序中,變量dgvWidth是dgv的寬度,變量dgvHeight是dgv的高度,變量nDisplayRows是需要在dgv中顯示的記錄行數。第2節布局屬性中已經說明了Data GridView控件的Width和Height的計算方法。DataGridView控件的BorderStyle屬性默認為FixedSingle,在這種情況下,其寬度需要加2個像素進行調整;如果BorderStyle屬性的值設置為Fixed3D,該值為4;如果BorderStyle屬性的值設置為 None,DataGridView 控件的寬度也不需要調整了[9]。程序先輸出行標頭與列標頭的高度與寬度。dgv.ColumnCount 返回 dgv 中的數據列數,在一個For循環中輸出各數據列的寬度,并完成數據列寬度的累加。SystemInformation. VerticalScrollBarWidth為垂直滾動條的寬度。最后輸出需要在設計時更改的屬性(前面加上注釋符號)。以文獻[10]中的“基于TCP協議的計算機監控系統測試軟件”為例,輸出代碼如下所示。

關閉應用程序,在設計時根據示例代碼最后三行修改dgv的相應屬性值,將其余代碼復制到窗體裝載方法中,禁用行為屬性。由于dgv的大小已經確定,此時可以調整dgv的右側和底端的邊界。重新運行程序,界面如圖1所示,dgv底部沒有出現被切割的行,橫向也無多余像素,整個界面完整美觀,而且一次調整到位。

5? 結束語

DataGridView控件使用方便,界面美觀,深得編程人員和用戶的喜愛。但是,其界面調整比較繁瑣。本文通過對DataGridView的深入學習,提出了一種界面代碼自動生成方法,提高了編程效率。修改界面數據后,如何更新后臺數據,可以調用文獻[10]中提供的方法。

參考文獻

朱玉艷, 張慧. DataGridView控件數據導入/導出Excel表格[J]. 電腦知識與技術, 2017, 13(19): 4-5

馬玉春. 基于 Visual Basic 2008的Access數據庫類的設計[J]. 軟件. 2012, 33(6): 41-43+47

趙睿. 針對Datagridview控件裝載數據時發生的錯誤及其解決辦法——以GNSS軟件控制點編輯界面為例[J]. 電子技術與軟件工程, 2018(08): 70-71.

黃宇健, 劉宏韜. Android項目開發范例大全[M]. 北京: 中國鐵道出版社, 2012. 5

呂媛媛, 李可. 移動端應用設計中的響應式實現方法[J]. 軟件, 2016, 37(02): 107-109.

岳立言, 歐陽昇, 翟寶蓉. 嵌入式Linux遠程監控系統的設計與開發[J]. 軟件, 2018, 39(06): 20-22.

陳佳, 李樹強, 谷靈康. Android移動開發[M]. 北京: 人民郵電出版社, 2016. 5

姜海嵐, 程琳. 雙項目教學在軟件專業課程中的實踐——以《Android移動應用開發》課程為例[J]. 電腦知識與技術, 2018, 14(12): 114-115.

劉雍, 汪文彬, 馬玉春. Android環境下的數據編碼與處理技術[J]. 電腦編程技巧與維護, 2018(09): 71-74+107.

馬玉春. 計算機監控系統的仿真開發[M]. 北京: 國防工業出版社, 2015. 2

猜你喜歡
界面設置用戶
中隊崗位該如何設置
少先隊活動(2021年4期)2021-07-23 01:46:22
國企黨委前置研究的“四個界面”
當代陜西(2020年13期)2020-08-24 08:22:02
基于FANUC PICTURE的虛擬軸坐標顯示界面開發方法研究
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
人機交互界面發展趨勢研究
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
本刊欄目設置說明
中俄臨床醫學專業課程設置的比較與思考
手機界面中圖形符號的發展趨向
新聞傳播(2015年11期)2015-07-18 11:15:04
主站蜘蛛池模板: 91麻豆国产精品91久久久| 国产成人一区免费观看| 欧美国产菊爆免费观看| 国产va视频| 久久国产精品无码hdav| 亚洲无码精彩视频在线观看 | 亚洲欧美日韩另类在线一| 免费大黄网站在线观看| 亚洲国产精品久久久久秋霞影院| 91成人在线免费视频| 欧美激情首页| 国产最新无码专区在线| 国内毛片视频| 狠狠色丁香婷婷| 狠狠色噜噜狠狠狠狠色综合久| 亚洲色图另类| 欧美一区二区啪啪| 久久精品女人天堂aaa| 日韩天堂视频| 欧美精品一二三区| 久久青草视频| jizz在线免费播放| 91久久国产综合精品| 蝴蝶伊人久久中文娱乐网| 亚洲最大情网站在线观看| 欧美成人午夜在线全部免费| 亚洲最黄视频| 亚洲娇小与黑人巨大交| 911亚洲精品| 欧美亚洲欧美区| 亚洲va视频| 在线观看91精品国产剧情免费| 国产成人久久777777| 四虎AV麻豆| 亚洲区视频在线观看| 女人18一级毛片免费观看| www.日韩三级| 亚洲精品视频网| 国产精品流白浆在线观看| 日本高清在线看免费观看| 欧美成人免费一区在线播放| 久久 午夜福利 张柏芝| 欧美一区二区三区不卡免费| 99热这里只有免费国产精品 | 又猛又黄又爽无遮挡的视频网站| 嫩草影院在线观看精品视频| 欧美日韩中文国产| 国产在线一区视频| 夜夜拍夜夜爽| 久久成人免费| 亚洲天堂福利视频| 国产喷水视频| 九色在线观看视频| 欧美另类视频一区二区三区| 九色国产在线| 亚洲精品波多野结衣| 青青青亚洲精品国产| 高清国产va日韩亚洲免费午夜电影| 蝴蝶伊人久久中文娱乐网| 国产在线无码av完整版在线观看| 国产一级在线观看www色| 黄色a一级视频| 日韩东京热无码人妻| 午夜成人在线视频| 国产尤物在线播放| 欧美在线中文字幕| 亚洲人成电影在线播放| 亚洲无码91视频| 国产中文在线亚洲精品官网| 精品视频一区二区观看| 日本三级欧美三级| 国国产a国产片免费麻豆| 黄色一级视频欧美| 九九线精品视频在线观看| 国产精品白浆在线播放| 99久久精品国产自免费| 99热这里只有免费国产精品| 久久久精品久久久久三级| 国产精品黄色片| 日韩AV手机在线观看蜜芽| 黄色在线不卡| 国产视频a|