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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# datagridview 怎样动态设置列宽的值相关的知识,希望对你有一定的参考价值。

C# dataGridView控件做了一个读取mysql数据库中数据的表格。添加了翻页功能,但是翻页以后,列宽就变了,变成按标题外的内容设置列宽。

我希望列宽是动态的,能根据内容多少调节宽度,但最小值要够标题的长短(也就是50,150,150,100,100,90)。

属性:
AutoSizeColumnsMode:AllCells(设置成ColumnHeader效果是一样的,改成none的话,当内容增加时列宽无法改变)
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].MinimumWidth = 150;
就出现列宽只自动匹配内容宽度,无视标题长度的问题,我就改成Width了,然而还是一样的问题。
然后我做了个断点测试,发现它执行了dataGridView3.Columns[1].Width = 150;的语句,但是值没有装进去。

参考技术A 看一下你这个 DataGridView 的 AutoSizeColumnsMode 属性设置成了什么?改成 ColumnHeader 或 None 模式,再配合 MinimumWidth 使用。

以上是关于C# datagridview 怎样动态设置列宽的值的主要内容,如果未能解决你的问题,请参考以下文章

DataTable 怎样设置列宽? DataTable中已经有数据了怎样在现实的时候设置它的列宽?

如何在C#中 禁止 dataGridView 自动添加行

c#设置datagridview行标题

[转]简单的动态修改RDLC报表页边距和列宽的方法

c# 动态添加表格,怎么设置一列的宽度

c# datagridview 设置某列为日期