C# datagridview 怎样动态设置列宽的值

C# dataGridView控件做了一个读取mysql数据库中数据的表格。添加了翻页功能,但是翻页以后,列宽就变了,变成按标题外的内容设置列宽。属性:AutoSizeColumnsMode:AllCells(设置成ColumnHeader效果是一样的)dataGridView控件里编辑列设置的最小列宽分别是:50,150,150,100,100,90点击翻页按钮后的事件代码:(i和j分别是算出来的序号值)myshow = new MySqlDataAdapter("select * from 参考书 where 序号 BETWEEN " + i + " AND " + j, conn);datashow = new DataSet();myshow.Fill(datashow);dataGridView3.DataSource = null; // 清空数据dataGridView3.DataSource = datashow.Tables[0]; // 在表格中显示数据dataGridView3.Columns[0].HeaderText = "序号";dataGridView3.Columns[1].HeaderText = "编号编号编号编号";dataGridView3.Columns[1].Width = 150;dataGridView3.Columns[2].HeaderText = "名称名称名称名称名称";dataGridView3.Columns[2].Width = 150;dataGridView3.Columns[3].HeaderText = "作者作者作者";dataGridView3.Columns[3].Width = 100;dataGridView3.Columns[4].HeaderText = "类别类别类别";dataGridView3.Columns[4].Width = 100;dataGridView3.Columns[5].HeaderText = "格式格式格";dataGridView3.Columns[5].Width = 90;+++++++++++++我做了个断点测试,发现它执行了dataGridView3.Columns[1].Width = 150;的语句,但是值没有装进去。
我希望列宽是动态的,能根据内容多少调节宽度,但最小值要够标题的长短(也就是50,150,150,100,100,90)
一开始用的是 dataGridView3.Columns[1].MinimumWidth = 150;
就出现列宽只自动匹配内容宽度,无视标题长度的问题,我就改成Width了,然而还是一样的问题。

看一下你这个 DataGridView 的 AutoSizeColumnsMode 属性设置成了什么?改成 ColumnHeader 或 None 模式,再配合 MinimumWidth 使用。
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-09-01
你希望的是动态列宽还是固定?追问

我希望是动态的,但最小值要够标题的长短(也就是50,150,150,100,100,90)
一开始用的是 dataGridView3.Columns[1].MinimumWidth = 150;
就出现列宽只自动匹配内容宽度,无视标题长度的问题,我就改成Width了,然而还是一样的问题。

C#中,怎样让DataGridView的 列宽 按照 列名 的长短自动变更?也就是让...
DisplayedCellsExceptHeader 调整列宽,以适合当前屏幕上显示的行的列中的所有单元格的内容,不包括标题单元格。ColumnHeader 调整列宽,以适合列标题单元格的内容。Fill 调整列宽,使所有列的宽度正好填充控件的显示区域,只需要水平滚动保证列宽在DataGridViewColumn.MinimumWidth属性值以上。相对列宽由相对DataGri...

在使用c#的datagridview控件时,如何确保表格内容能够
首先,调整列宽以适应内容。手动或通过代码动态计算列宽,确保所有内容都能清晰可见。其次,启用自动调整列宽功能。DataGridView提供四种自动调整列宽的选项:None、AllCells、Fill 和 BasedOnHeaders。根据需要选择合适的选项。处理数据类型不匹配问题,确保数据源中的数据与DataGridView单元格格式相匹配。使用DataGr...

c# 动态修改窗体大小
在C#中使用winform布局的时候,拖一个datagridview到窗体上面,将datagridview调整为适合窗体的大小。但是运行之后,点击最大化按钮的时候,发现datagridview的大小没有随着窗体的大小而变化。这时候需要设置一下datagridview的相应属性就可以实现,将Anchor的属性设置为TOP,BOTTOM,LEFT,RIGHT,并且将DOCK属性设置...

C#datagridview边框随着窗体的改变而改变?我的这个程序,默认大小正好...
选中datagridview 然后点击属性 选择里面的Anchor属性 然后去设置你要改变的位置 选中哪个方向 控件就会在窗体发生改变的时候自动往那边填充。

C# 如何调整DataTable的大小?有人说调属性,但是MicroSoft Visual 20...
和DataGridView绑定以后,可以通过调节 dataGridView.Columns[index].Width 的方法来分别调节每一列的宽度。要是排不满的话,你可以选择用最后一列占满剩下的全部空间,或者将所有列均匀分布来占满全部空间。虽然比较麻烦,但是是可行的。希望可以帮到你。Height也是同样的调节方法。

C# 中如何设置DataGridVIew中的行标题的值?不让它显示成*号。_百度...
点击控件右上角的小三角符号,在弹出的窗口中选择编辑列,在左下角点添加,添加之后选择刚才你所添加的项,在右边会显示相应的属性,找到HeaderText项,后面填入标题就行,要绑定数据的话就在DataPropertyName后面填上数据源的字段名就可以了。

c#中datagridview控件可以自动折行显示吗?
一楼说的好用!!!设一下列宽比如把列宽设成10% 然后你的数据多 datagridview会自动换行的!那一行的高自动就增加了!!!哦我也试了 英文不能换行 我有一个方法 不过有些笨 你将要显示的数据在你要换行的地方插入 gridview里加一个模板列 列中加一个lable 中lable来显示这个数据字段 这个就能...

C#DataGridView控件怎么增加行、列?
添加列:DataGridViewColumn column = new DataGridViewColumn();设置column属性如:column.HeaderText = "列名";dgv1.columns.add(column);添加行:DataGridViewRow row = new DataGridViewRow();设置row属性dgv1.rows.add(row);(一)。自适应窗体的代码:using System;using System.Windows.Forms;na...

C#中DataGridView控件的行头显示序号的宽度适中也就是RowHearWidth属性...
using System.Text;using System.Windows.Forms;using System.Drawing;namespace Test { class DataGridViewEx : DataGridView { SolidBrush solidBrush;public DataGridViewEx(){ solidBrush = new SolidBrush(this.RowHeadersDefaultCellStyle.ForeColor);} protected override void OnRowPostPaint(DataGrid...

c#ColumnWidth这样的属性怎么用
列宽。一般在ListView和DataGridView里面。用来设置或获取某一列的宽度。

相似回答