首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DataGridView AutoFit和Fill

DataGridView AutoFit和Fill
EN

Stack Overflow用户
提问于 2013-09-06 21:04:35
回答 9查看 255.1K关注 0票数 104

我的DataGridView中有3列。我要做的是让前2列自动与内容的宽度相匹配,并让第3列填充剩余的空间。

在WinForms中可以做吗?如果有任何用处,我将从EF DataContext加载我的数据。我已经包括了一个图像,它目前的外观。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2013-09-06 21:27:30

您需要使用DataGridViewColumn.AutoSizeMode属性。

您可以对第0列和第1列使用这些值之一:

AllCells:列宽度调整以适应列中所有单元格(包括标头单元格)的内容。 AllCellsExceptHeader:列宽度调整以适应列中所有单元格的内容,不包括标头单元格。 DisplayedCells:列宽度调整以适应列中当前在屏幕上显示的行(包括标题单元格)中所有单元格的内容。 DisplayedCellsExceptHeader:列宽度调整以适应列中当前显示在屏幕上的所有单元格的内容,不包括标题单元格。

然后,对第2列使用Fill值。

列宽度调整,以便所有列的宽度准确地填充控件的显示区域.

代码语言:javascript
复制
this.DataGridView1.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
this.DataGridView1.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
this.DataGridView1.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;

正如其他用户所指出的,可以使用datagridview属性在DataGridView.AutoSizeColumnsMode级别设置默认值。

代码语言:javascript
复制
this.DataGridView1.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
this.DataGridView1.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;

可以是:

代码语言:javascript
复制
this.DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;

重要注意事项:

如果网格绑定到数据源并自动生成列(AutoGenerateColumns属性设置为True),则需要在创建DataBindingComplete列之后使用DataBindingComplete事件应用样式

在某些情况下(例如,通过代码更改单元格值),我必须调用DataGridView1.AutoResizeColumns();来刷新网格。

票数 193
EN

Stack Overflow用户

发布于 2015-07-28 19:54:46

这是我最喜欢的方法..。

代码语言:javascript
复制
_dataGrid.DataBindingComplete += (o, _) =>
    {
        var dataGridView = o as DataGridView;
        if (dataGridView != null)
        {
           dataGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
           dataGridView.Columns[dataGridView.ColumnCount-1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
        }
    };
票数 25
EN

Stack Overflow用户

发布于 2015-06-25 11:59:03

只是更改控件属性的属性: AutoSizeColumnsMode:Fill

代码

dataGridView1.AutoSizeColumnsMode=DataGridViewAutoSizeColumnsMode.Fill;

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18666582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档