winform表格控件Word格式.docx

上传人:b****4 文档编号:17842826 上传时间:2022-12-11 格式:DOCX 页数:6 大小:19.29KB
下载 相关 举报
winform表格控件Word格式.docx_第1页
第1页 / 共6页
winform表格控件Word格式.docx_第2页
第2页 / 共6页
winform表格控件Word格式.docx_第3页
第3页 / 共6页
winform表格控件Word格式.docx_第4页
第4页 / 共6页
winform表格控件Word格式.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

winform表格控件Word格式.docx

《winform表格控件Word格式.docx》由会员分享,可在线阅读,更多相关《winform表格控件Word格式.docx(6页珍藏版)》请在冰豆网上搜索。

winform表格控件Word格式.docx

  1实现思路

  虽然excel可以制作样式复杂的表格,但是软件系统的数据都被存放在数据库内,因此必须编写代码将数据库文件内的数据输出到excel文件内,再将该excel文件内容显示到窗体上就可以满足用户需求。

具体实现思路如下:

①按照用户设计的表格样式,用excel制作表格模板文件;

②为了不破坏模板文件,在使用文件之前,通过代码复制模板文件,以后的所有操作都在新文件上执行;

③编写c#程序,通过技术从数据库内提取数据,向excel文件的指定单元格输出数据并保存文件;

④将excel文件嵌入到窗体中,供用户浏览修改,并可以保存修改后的内容。

  2c#中控制excel文件的方法

  2.1引用excel类型库

  在c#中控制excel文件的前提是添加excel的引用。

根据计算机上安装的excel软件版本的不同,组件名称和类型库的版本也不一样,此处excel的版本为20xx版本,因此com组件名称为microsoftexcel11.0objectlibrary。

引用excel类型库的具体操作方法为:

①在解决方案资源管理器中,右击“引用”菜单项,选择“添加引用”;

②在“添加引用”对话框中,选择

  篇二:

winform调用wpF窗体及wpF中grid绘制表格

  winForm调用wpF窗体及wpF中grid绘制表格背景

  质检模块,操作工根据工序和物料编码,确定需要填写的质检单,由于质检单的格式多样化,普通的表格控件无法满足需求,它们基本是每一列固定一种显示方式。

但质检模块涉及的表单,根据相关属性值的不同,同一列不同行的显示方式、操作不同,而且涉及单元格合并等。

因此想到利用wpF中grid自绘表格。

由于整个系统是winForm程序,这就需要使用在winForm中调用wpF窗体。

方法

  1.winForm调用wpF窗体

  1)在winForm工程的解决方案资源管理器中,在对应的解决方案中新建或者添加现有的wpF用户控件工程

  2)在wpF中创建自定义的控件,或添加wpF控件至面板上

  3)在winForm面板上添加elementhost控件4)生成解决方案后,在刚刚的elementhost中的child属性中添加自建的wpF生成的控件

  5)注意:

调用wpF窗体,需要为项目添加wpF相关引用,如图1-1所示:

  图1-1wpF相关引用文件

  2.wpF中grid绘制表格:

  1)定义好要绘制表格的行数和列数,同时可以定义  

好行高和列宽,如图2-1:

  图2-1画表格

  2)表格边框可以在画表格的同时就画好,这种方式适合表格固定的情况;

  也可以在添加表格内容的时候,逐一添加,如图2-2。

  图2-2画边框

  3)添加表格内容

  a)确定单元格显示形式,如textblock、textbox、label、Radiobutton

  等。

  b)步骤:

新建一个控件,内容属性的一些设置,确定填充位置,添加

  至需要显示的grid中。

若有需要,可进行数据绑定。

详细如图2-3。

  图2-3单元格填充

  图2-4单元格填充

  效果如下示例图:

  图2-5示例图

  3.wpF后台数据绑定:

  篇三:

c#winForm开发datagridView控件的各种操作总结

  c#winForm开发

  datagridView控件的各种操作总结

  一、单元格内容的操作.....................................................................................................2

  1.1.取得当前单元格内容............................................................................................2

  1.2.datagridView设定单元格只读:

.........................................................................2

  1.3.datagridView行头列头的单元格.........................................................................2

  1.4.datagridView单元格的tooltip的设置................................................................2

  1.5.datagridView的单元格的边框、网格线样式的设定...........................................3

  1.6.datagridView单元格表示值的自定义..................................................................4

  1.7.datagridView用户输入时,单元格输入值的设定.................................................4

  二、行/列的操作..............................................................................................................5

  2.1.datagridView不显示最下面的新行:

..................................................................5

  2.2.datagridView

  2.3.datagridView

  2.4.datagridView

  2.5.datagridView判断新增行:

................................................................................5行的用户删除操作的自定义:

........................................................5行、列的隐藏和删除:

..................................................................6禁止列或者行的Resize:

...............................................................6

  2.6.datagridView列宽和行高自动调整的设定:

........................................................7

  2.7.datagridView冻结列或行....................................................................................8

  2.8.datagridView列顺序的调整................................................................................8

  2.9.datagridView新加行的默认值的设定..................................................................8

  三、针对datagridview全局属性的设置.............................................................................9

  3.1.使用editmode属性............................................................................................9

  3.2.根据条件设定单元格的不可编辑状态...................................................................9

  3.3.datagridView剪切板的操作................................................................................9

  3.4.datagridView的右键菜单(contextmenustrip).................................................10

  3.5.cellcontextmenustripneeded、Rowcontextmenustripneeded事件........................10

  四、是用Virtual模式.....................................................................................................12

  一、单元格内容的操作

  1.1.取得当前单元格内容console.writeline(datagridView1.currentcell.Value);

  //取得当前单元格的列index

  console.writeline(datagridView1.currentcell.columnindex);

  //取得当前单元格的行index

  console.writeline(datagridView1.currentcell.Rowindex);

  另外,使用datagridView.currentcelladdress属性(而不是直接访问单元格)来确定单元格所在的行:

datagridView.currentcelladdress.y和列:

*****.x。

这对于避免取消共享行的共享非常有用。

  当前的单元格可以通过设定datagridView对象的currentcell来改变。

可以通过currentcell来设定datagridView的激活单元格。

将currentcell设为nothing(null)可以取消激活的单元格。

  //设定(0,0)为当前单元格

  datagridView1.currentcell=datagridView1[0,0];

  在整行选中模式开启时,你也可以通过currentcell来设定选定行。

  *注意:

this.datagridView的索引器的参数是:

[columnindex,rowindex]或是

  [columnname,rowindex],这与习惯不同。

  使用Readonly属性

  如果希望,datagridView内所有单元格都不可编辑,那么只要:

  //设置datagridView1为只读

  datagridView1.Readonly=true;

  此时,用户的新增行操作和删除行操作也被屏蔽了。

如果希望,datagridView内某个单元格不可编辑,那么只要:

  //设置datagridView1的第2列整列单元格为只读

  datagridView1.columns[1].Readonly=true;

  //设置datagridView1的第3行整行单元格为只读

  datagridView1.Rows[2].Readonly=true;

  //设置datagridView1的[0,0]单元格为只读

  datagridView1[0,0].Readonly=true;

  1.3.datagridView行头列头的单元格

  //改变datagridView1的第一列列头内容

  datagridView1.columns[0].headercell.Value="

第一列"

;

  //改变datagridView1的第一行行头内容

  datagridView1.Rows[0].headercell.Value="

第一行"

  //改变datagridView1的左上头部单元内容

  datagridView1.topleftheadercell.Value="

左上"

  另外你也可以通过headertext来改变他们的内容。

  datagridView1.columns[0].headertext="

  1.4.datagridView单元格的tooltip的设置

  datagridView.showcelltooltips=true的情况下,单元格的tooltip可以表示出来。

对于单元格窄小,无法完全显示的单元格,tooltip可以显示必要的信息。

  1)设定单元格的tooltip内容

  //设定单元格的tooltip内容

  datagridView1[0,0].tooltiptext="

该单元格的内容不能修改"

  //设定列头的单元格的tooltip内容

  datagridView1.columns[0].tooltiptext="

该列只能输入数字"

  //设定行头的单元格的tooltip内容

  datagridView1.Rows[0].headercell.tooltiptext="

该行单元格内容不能修改"

  2)celltooltiptextneeded事件

  在批量的单元格的tooltip设定的时候,一个一个指定那么设定的效率比较低,这时候可以利用celltooltiptextneeded事件。

当单元格的tooltiptext变化的时候也会引发该事件。

  注意仅当datagridView的datasource被指定或者Virualmode=true的时候,该事件才会被引发。

  //celltooltiptextneeded事件处理方法

  privatevoiddatagridView1_celltooltiptextneeded(objectsender,

  datagridViewcelltooltiptextneededeventargse)

  {

  e.tooltiptext=e.columnindex.tostring()+"

"

+e.Rowindex.tostring();

  }

  1.5.datagridView的单元格的边框、网格线样式的设定

  1)datagridView的边框线样式的设定

  datagridView的边框线的样式是通过datagridView.borderstyle属性来设定的。

borderstyle属性设定值是一个borderstyle枚举:

Fixedsingle(单线,默认)、Fixed3d、none。

  2)单元格的边框线样式的设定

  单元格的边框线的样式是通过datagridView.cellborderstyle属性来设定的。

  cellborderstyle属性设定值是datagridViewcellborderstyle枚举。

(详细参见msdn).另外,通过datagridView.columnheadersborderstyle和Rowheadersborderstyle属性可以修改datagridView的头部的单元格边框线样式。

属性设定值是

  datagridViewheaderborderstyle枚举。

  3)单元格的边框颜色的设定

  单元格的边框线的颜色可以通过datagridView.gridcolor属性来设定的。

默认是controldarkdark。

但是只有在cellborderstyle被设定为single、singlehorizontal、

  singleVertical的条件下才能改变其边框线的颜色。

同样,columnheadersborderstyle以及Rowheadersborderstyle只有在被设定为single时,才能改变颜色。

  4)单元格的上下左右的边框线式样的单独设定cellborderstyle只能设定单元格全部边框线的式样。

要单独改变单元格某一边边框式样的话,需要用到datagridView.advancedcellborderstyle属性。

如示例:

  //单元格的上边和左边线设为二重线

  //单元格的下边和右边线设为单重线

  datagridView1.advancedcellborderstyle.top=_

  datagridViewadvancedcellborderstyle.insetdouble

  datagridView1.advancedcellborderstyle.Right=_

  datagridViewadvancedcellborderstyle.inset

  datagridView1.advancedcellborderstyle.bottom=_datagridViewadvancedcellborderstyle.inset

  datagridView1.advancedcellborderstyle.left=_

  同样,设定行头单元格的属性是:

advancedRowheadersborderstyle,设定列头单元格属性是:

advancedcolumnheadersborderstyle。

  1.6.datagridView单元格表示值的自定义

  通过cellFormatting事件,可以自定义单元格的表示值。

(比如:

值为error的时候,单元格被设定为红色)下面的示例:

将“colmn1”列的值改为大写。

  //cellFormatting事件处理方法

  privatevoiddatagridView1_cellFormatting(objectsender,

  datagridViewcellFormattingeventargse)

  datagridViewdgv=(datagridView)sender;

  //如果单元格是“column1”列的单元格

  if(dgv.columns[e.columnindex].name=="

column1"

e.Value=str.toupper();

  //应用该Format,Format完毕。

  e.Formattingapplied=true;

  cellFormatting事件的datagridViewcellFormattingeventargs对象的Value属性一开始保存着未被格式化的值。

当Value属性被设定表示用的文本之后,把Formattingapplied属性做为true,告知datagridView文本已经格式化完毕。

如果不这样做的话,datagridView会根据已经设定的Format,nullValue,datasourcenullValue,Formatprovider属性会将Value属性会被重新格式化一遍。

  1.7.datagridView用户输入时,单元格输入值的设定通过datagridView.cellparsing事件可以设定用户输入的值。

  下面的示例:

当输入英文文本内容的时候,立即被改变为大写。

  //cellparsing事件处理方法

  privatevoiddatagridView1_cellparsing(objectsender,

  datagridViewcellparsingeventargse){

  //单元格列为“column1”时

  //解析完毕

  e.parsingapplied=true;

  二、行/列的操作

  通常datagridView的最下面一行是用户新追加的行(行头显示*)。

如果不想让用户新追加行即不想显示该新行,可以将datagridView对象的allowusertoaddRows属性设置为False。

  //设置用户不能手动给datagridView1添加新行

  datagridView1.allowusertoaddRows=false;

  但是,可以通过程序:

datagridViewRowcollection.add为datagridView追加新行。

补足:

如果datagridView的datasource绑定的是dataView,还可以通过设置dataView.allowadd属性为False来达到同样的效果。

  2.2.datagridView判断新增行:

  datagridView的allowusertoaddRows属性为true时也就是允许用户追加新行的场合下,datagridView的最后一行就是新追加的行(*行)。

使用datagridViewRow.isnewRow属性可以判断哪一行是新追加的行。

另外,通过datagridView.newRowindex可以获取新行的行序列号。

在没有新行的时候,newRowindex=-1。

  if(datagridView1.currentRow.isnewRow)

  console.writeline("

当前行为新追加行。

"

);

  else

当前行不是新追加行。

  2.3.datagridView行的用户删除操作的自定义:

  1)无条件的限制行删除操作。

  默认时,datagridView是允

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1