DataGridView格式化代码自动生成方法

来源 :软件 | 被引量 : 0次 | 上传用户:guosuzhou
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘  要: 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
其他文献
摘 要: 为研究心室变化对心脏磁场的影响,本文利用健康人彩色多普勒成像提取一个心动周期的左心室图像数据,建立了一个动态的磁场边界元模型。文中基于该模型研究了电流偶极子在左心室舒张期220 ms和320 ms时刻所产生的心脏磁场数据,结果显示当偶极子位于左心室腔内时,220 ms时刻的磁场强度大于320 ms时刻的磁场强度;当偶极子位于左心室腔外(心肌中)时,磁场强度相对前者的变化小,且320 ms
期刊
摘 要: 阿达木单抗是一种可与TNF-α特异性结合从而阻断自身免疫炎症反应的蛋白质药物。这种药物在冻干过程中结构不稳定且容易失活,严重影响了药物的疗效。本文用Gromacs分子动力学软件工具包研究蔗糖和海藻糖对阿达木单抗的活性结构稳定效果,揭示了保护剂对阿达木单抗的保护机制,从而为冻干工艺中阿达木单抗的处方设计提供了科学的筛选方法。结果表明,在300K条件下(二次升华温度),不添加保护剂时,阿达木
期刊
摘 要: 本文主要介绍了一款综合了云平台的计算能力和AR技术的教育直播产品,本地视频通过摄像头采集进行AR识别和视频采集。在画板模式下,采集到识别文字之后会在视频端显示生动的动画效果。前端采用Android studio进行开发并且增加弹幕功能。通过实验调研对比之后,本平台有较低的延迟性,良好的用户交互性。  关键词: AR识别技术;OBS;SRS;安卓系统  中图分类号: G711 文献标识码
期刊
摘 要: 根据运动学要求设计一种应在烟苗移栽机的可升降车架,再对升降机构的进行运动学静力学特性分析及动力学特性分析以验证设计。通过运动学设计出其结构,用三维建模软件SolidWorks建立实体模型,通过有限元分析软件ANSYS对升降机构进行有限元分析计算。得到升降机构在满载时的等效应力分布、最大等效应力、最大变形,根据材料的性能得出升降机构符合静力学特性要求;得到升降机构的自由模态、谐响应、响应谱
期刊
摘 要: 针对传统课堂考勤的效果不理想的问题,本文探讨了企业微信考勤方式在高校学生课堂考勤应用的可行性。本研究通过调查问卷的方式,獲得了学生、教师、学生管理人员对应用企业微信方式对学生考勤的接受情况,并对企业微信应用于学生课堂管理实践的软硬件基础进行了讨论。研究表明,基于企业微信微平台的高校课堂考勤管理方式可有效的提高考勤效率,具有可行性,未来应用的前景广阔,可弥补传统点名方式的不足。  关键词:
期刊
摘 要: 手势识别是当前计算机视觉的一个重要研究课题,由于手势旋转,角度等因素的影响,视频手势识别仍是一项具有挑战性的任务。该文提出了一种基于三维密集卷积神经网络和门限循环单元的双通道手势识别算法,通过三维密集卷积神经网络获取手势的空间信息,使用门限循环单元学习视频中手势的时序信息,最后融合RGB图像和深度图像的深度学习模型特征以此对手势进行识别。在ISOGD数据集上的实验表明,该手势识别算法能够
期刊
摘 要: 针对目前的建筑遮阳研究状况及市场需求,设计了一种智能型光伏百叶窗防盗报警装置,既有智能遮阳功能、又能光伏发电并且具有防盗短信报警能力。本装置由光伏板与遮阳叶片组成阵列,可根据外界环境气候及一年四季太阳运行的变化而自动调整叶片角度,取得符合设计要求的遮阳效率及发电量。通过无线模块把室内的温度、湿度、光照度传送至手机界面上,实时监测室内环境情况,并可以一键开启光伏百叶窗,单片机通过外接光敏电
期刊
摘 要: 为得到高质量铸件,针对汽车转向器伺服壳体壁厚不均,结构复杂的特点,使用UG对壳体进行三维建模并使用Anycasting模拟铸造软件对壳体高压铸造充型及凝固过程进行数值模拟,改进模具结构优化压铸工艺参数,有效地预测了在压铸过程中出现的缩松缩孔问题的位置。通过正交试验与Anycasting模拟软件分析得出ADC12铝合金转向器伺服壳体优化后的压铸工艺方案:浇注温度为630℃,模具初始预热温度
期刊
摘 要: 自动评分方法是教育中实现计算机评分的一项研究,经过归结、分析国内外自动评分方法及最新的科研成果,完善对自动评分方法的研究,便于快速学习和把握自动评分方法,了解该领域的发展现状及趋势。经过对过去该领域经典文献整理,分析不同自动评分方法的运用思想、优劣势,总结每种计算方法的侧重点及最新的应用进展。本文从国内外自动评分方法两方面进行阐述,形成较为清晰的思路。指出基于自然语言处理的自动评分方法为
期刊
摘 要: 社会互动作为影响国家、社会与个人等存在与发展的重要因素,已受到国内外研究者与实践者的广泛关注。为明确我国社会互动研究热点与趋势,本文基于CNKI的文献计量工具和CiteSpace软件,从研究学科、期刊来源、研究机构、核心作者等方面对我国社会互动的核心期刊刊文进行了可视化分析。研究表明,我国社会互动的研究热点主要集中在社会互动、学校、互动、社会与社会资本等方面;研究趋势主要以社会互动理论、
期刊