设置 DataGridView AllowUserToResizeColumns 并非 100% 正确

Setting the DataGridView AllowUserToResizeColumns is not 100% correct

如果我将 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);

最初看起来不错:

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

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

所以我这里有两个问题:

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

  2. 如果一定要允许,能不能处理一下最后一栏的问题?

想法?

要固定行 header 宽度并防止用户调整行 header 宽度,您可以将网格的 RowHeadersWidthSizeMode 属性 设置为 DisableResizing使用设计器或代码:

grid.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.DisableResizing;

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

您还可以使用 DataGridViewRowHeadersWidthSizeMode 枚举的自动大小选项。

By default, users can resize the width of the row headers. You can disable this ability to set a fixed width, or you can use a content-based automatic sizing mode, which also disables user resizing.