winform控件之datagridview数据控件显示问题

lifeiswonderful      2022-02-06     53

关键词:

       最近在做同类的信息记录管理系统时遇到了DataGridView数据控件的显示问题,可能是2015年的上半年没有深入

学习C#开发的原因,这几天重新搬出来开发,首先遇到的问题就是动态绑定数据显示的问题,琢磨了很久,在网上查

了也不少,但是对自己的数据列表显示问题还是没有做到最佳。最后解决的方法还是自己一个尝试出来的,虽然不是

很好,但最起码遇到的问题都解决了,顿时轻松了许多。

       一默认状态的绑定

       也就是没有设置DataGridView控件数据列表中的列的设置,其他的属性该设置还需设置。我们来看一下实际的效

果展示:


       默认状态下,列的宽度都是相等的,短的数据可以完全显示出来,但是一些长字段的数据没有完整的显示出来;

还有就是整个数据列表并没有撑满整个容器,在数据列表和边界之间还有一定的空白。这对管理系统的界面显示不是

很好,说白了就是用户体验也会下降,也需要改进。

       二列宽自适应绑定

       由于我的是数据时动态绑定的,这些列宽只能在代码中进行设置,这是我在网上看到的,也并不是很了解,首先

尝试一下就知道了。

       C#代码:
for (int i = 0; i < dgv_infor.ColumnCount; i++)
{
        dgv_infor.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;//自适应列宽
}

        dgv_infor代表是DataGridView控件,ColumnCount是动态绑定数据列表的列的个数,Columns是一个列数组集

合,后面的代码表示适用于所有的列。

        实例显示:


        这一次解决了长短字段显示的问题,但是并没有解决撑满整个容器的问题,界面并不美观,而且如果进行数据添

加或更改的时候列宽还会随着字段的长短增加或减少,于是又在自己又进行尝试。

       三设置AutoSizeColumnsMode属性

       这个只需要在DataGridView控件的属性中设置即可:


       效果:


       它撑满了整个容器,但是还是有一定的数据显示问题,同样的列宽造成一些浪费,对长字段的列还是不会完整的

显示,对于短字段的列造成一定的剩余问题。我想着把自适应列宽和这个属性一同设置和加代码编辑,很遗憾还是这

样的显示,可能是这个属性覆盖了代码中的设置吧。

       四自定义列宽Columns[i].Width

       既然上述的做法和尝试都无法满意,也就是未解决存在的问题,我就想到了可不可以自己定义每个列的宽度,在

网上找了一下,都没有具体的代码,是可以自定义列宽,但是无从下手,在代码中一个一个进行属性的尝试,试了七

八次以后终于有所显示了,为了调整合适的列宽也是花了很长的时间。

        在上面说过,Columns是列数组集合,那么它是一个数组,我们就可以对其进行每一列的设置,使其每一列都有

己合适的宽度,并且撑满整个容器。

        C#代码:

            dgv_infor.Columns[0].Width = 50;
            dgv_infor.Columns[1].Width = 50;
            dgv_infor.Columns[2].Width = 50;
            dgv_infor.Columns[3].Width = 50;
            dgv_infor.Columns[4].Width = 100;
            dgv_infor.Columns[5].Width = 200;
            dgv_infor.Columns[6].Width = 200;
            dgv_infor.Columns[7].Width = 100;
            dgv_infor.Columns[8].Width = 50;
            dgv_infor.Columns[9].Width = 100;

        效果展示:


       五感悟

       每一次的项目实践都会给自己带来一定的收获,自己很希望可以多多参与一些项目的实战,毕竟只有在实战中才

能找到自己的不足,前两天在慕课网社区看的一篇文章大二女生web开发成长之路——讲述我从软妹子到女汉子的进

阶过程,顿时就羡慕的不行,有自己的感兴趣的方向,也有个小小团队进行一起实践开发,而且还参与了那么的项目

开发,这更加激励自己该朝着什么方向去努力。



winform控件之combobox,datagridview(代码片段)

1.代码结构截图2.核心代码usingSystem;usingSystem.Data;usingSystem.Drawing;usingSystem.Windows.Forms;namespaceWinFormComboBoxDemos///<summary>///WinForm程序:ComboBox和DataGridView使用方法///LDH@2018-3-6///</su 查看详情

c#winform程序树形表显示

...中,不借助第三控件,只使用.NETFramework自带的控件(如DataGridView)怎样实现如图所示的树形表啊。先谢谢了!尽可能不使用第三方控件。如果非得使用第三方控件,请帮忙推荐一个免费的,谢谢!参考技术A这个建议还是使用第... 查看详情

winform自定义分页控件及datagridview数据绑定

  分页效果如上图所示,用到的控件均为基本控件,其方法如下右击项目-添加-新建项选择用户控件然后在用户控件中拖入所需要的Label,Button,Text用户控件全部代码: usingSystem;usingSystem.Collections.Generic;usingSystem.Componen... 查看详情

winform窗体——datagridview控件及通过此控件中实现增删改查

DataGridView:显示数据表,通过此控件中可以实现连接数据库,实现数据的增删改查一、后台数据绑定:    List<xxx>list=newList<xxx>();    dataGridView1.DataSource=list;    &nbs 查看详情

c#.net不同版本中winform控件datagrid/datagrid/datagridview有啥区别

DataGridView控件是替换DataGrid控件的新控件。DataGridView控件提供了DataGrid控件中没有的许多基本功能和高级功能。此外,DataGridView控件的结构使得它比DataGrid控件更容易扩展和自定义。DataGridView控件功能1多种列类型与DataGrid控件相比... 查看详情

winform控件datagridview添加数据的几种方式(代码片段)

1:直接添加  在控件中设置好每列的名称 例如:DataGridViewRowrow=newDataGridViewRow();intj=dgv.Rows.Add(row);dgv.Rows[j].Cells[1].Value=值;dgv.Rows[j].Cells[2].Style.Font=newFont(dgv.Font,FontStyle.Bold);//设置字体加粗& 查看详情

用c#winform拖的datagridview控件,当选中一行数据以后鼠标离开之后,就选不中了

用c#winform拖的datagridview控件,当选中一行数据以后鼠标离开之后,就选不中了这是怎么回事呢?鼠标离开以后,选中的一行又变白了参考技术A这个没关系,你只要点击了其中一行就行,然后去做你想要的操作。直接用DataGridView.S... 查看详情

winform中datagridview控件的列名怎样实现多表头?

</img>参考技术A用2个datagridview控件,上面那个就一个表头,去掉其他的编辑,修改和添加属性,下面的那个才是绑定数据库的,如果你的列能自定义宽度,则还需要在这2个控件上添加列宽变化事件,使得上下2个控件列宽统一下. 参考... 查看详情

c#datagridview自定义控件,使之实现行与行之间可以有层次关系,能像treeview那样展开、合并

...个棘手的问题,望各位高手能帮帮我。我在项目中用到了DataGridView控件去显示数据,数据行之间有父子(层次)关系,希望显示的第一列数据有TreeView样式+数据,通过点击这个数据项可以正行的展开或合并。各位我现在只有25分... 查看详情

winform里datagridview这个控件直接绑定数据库信息实时交互操作?

vs2010用C#创建了一个winform程序,在winform里添加个控件DataGridView,这个怎么连接上数据库sqlserver2008r2,我在本地sqlserver里建立了一个数据库:Test,里面有表A1。没设置账户密码,直接windows默认验证登录参考技术A这个有两种方式:... 查看详情

关于winform下datagridview控件行的选择的问题

我在DataGridView1控件中显示考题的信息,双击某一行考题后可以将这行考题添加到DataGridView2,考题有分类QuestionsType字段,我想在选择了QuestionsType的值是A的考题后,设置QuestionsType的值为B的考题都为不可选考题,有什么办法可以... 查看详情

如何设计winform中datagridview控件的自定义按钮列

...可以采用Repeater控件方便的实现,但在WinForm中我们常用的DataGridView控件,却并不支持在一列中显示多个按钮。  查看信息列表界面:  修改、删除信息列表界面:  系统源码截图:参考技术ApublicvoidDgvStyle3(DataGridViewdgv)//未... 查看详情

请问c#的winform怎么获取datagridview选中的行数和列数啊

获取总行数:dataGridView1.Rows.Count;获取当前选中行索引:inti=this.dataGridView1.CurrentRow.Index;获取当前选中列索引:intj=this.dataGridView1.CurrentCell.ColumnIndex;DataGridView的几个基本操作:1、获得某个(指定的)单元格的值:dataGridView1.Row[i].Ce... 查看详情

一个winform下datagridview控件外观的自定义类

一、关于起因最近非常频繁的使用DataGridView控件,VS提供的Winform下DataGridView的默认样式非常难看。如果做美化处理的话,需要调整的地方非常多,且该控件的很多设置属性非常的晦涩,不是很人性化。每次进行设置都煞费脑筋,... 查看详情

C# Winforms 中的 UI 渲染缓慢

...InitializeComponent方法后,每个表中的数据被加载到对应的DataGridView中。当单击上述按钮之一时,其对应的DataGridView以及那些通 查看详情

winform中datagridview控件添加行标题

有很多种方法。 1、可以在DataGridView控件中的RowStateChanged事件改变行标题单元格的值(Row.HeaderCell.Value)1///<summary>2///行状态更改时发生3///</summary>4///<paramname="sender"></param>5///<paramname="e"& 查看详情

c#winform如何用datagridview增、删、改数据

单击右击菜单“添加”,就可把在datagridview中添加的数据添加到数据库。同理实现单击“修改“、”删除“的功能。参考技术Adatagridview控件中的编辑、删除、更新事件里写相应的代码。当然首先得启用它的这些功能。 查看详情

在c#,winform下怎样实现使用打印控件printdocument来打印datagridview里的内容?

...,还有,我用的三层架构的模式,把数据查询出来显示在datagridview中,要打印的话,你的代码我需要怎么修改呢?偶是小白,求教。。。本回答被提问者采纳 参考技术B建议用这种方式:DataGridView中的数据导出Excel,可以选择是... 查看详情