设置DataGridView AllowUserToResizeColumns不是100%正确

时间:2016-06-08 19:31:17

标签: c# winforms datagridview datagridviewcolumn

如果我将DataGridView设置为:

dataGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
dataGridView.AllowUserToAddRows = false;
dataGridView.AllowUserToResizeColumns = false;

然后设置我的列:

dataGridView.Columns["Colour"].FillWeight = 50;
dataGridView.Columns["Layer"].FillWeight = 50;
cboColumn.DefaultCellStyle.Padding = new Padding(16, 0, 16, 0);

最初看起来很棒:

Good Grid

我故意将鼠标放在列上调整大小并且它不允许。好!但是......

我仍然可以调整左侧列的大小,当我这样做时,我右边的画面看起来很糟糕:

Error

所以我在这里有两个问题:

  1. 为什么我仍然可以调整第一列的大小?我不想允许它。

  2. 如果必须允许,我们可以处理上一栏问题吗?

  3. 思想?

1 个答案:

答案 0 :(得分:2)

要修改行标题宽度并防止用户调整行标题宽度,可以使用设计器或代码将网格的RowHeadersWidthSizeMode属性设置为DisableResizing

grid.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.DisableResizing;

这样,行标题的大小将是您使用数据网格视图控件的RowHeadersWidth属性设置的固定值。

您还可以使用DataGridViewRowHeadersWidthSizeMode枚举的自动尺寸选项。

  

默认情况下,用户可以调整行标题的宽度。您可以   禁用此功能以设置固定宽度,或者您可以使用   基于内容的自动调整大小模式,它也会禁用用户   大小调整。