数据网格视图的AllowUserToResizeColumns和AllowUserToreszeRows不';不起

本文关键字:不起 AllowUserToreszeRows 网格 数据网 视图 AllowUserToResizeColumns 数据 | 更新日期: 2023-09-27 18:28:37

我有一个数据网格视图,我想允许用户调整列的大小,并阻止hom调整行的大小。我在设计和运行时都设置了属性,但这不会影响数据网格视图。相反,行可以调整大小,列不能。我试图反转属性值,但结果相同。

    private void SetupAlternatesDataGridView()
    {
        var recordstateColumn = new DataGridViewTextBoxColumn();
        recordstateColumn.Name = Glossary.RecordState;
        recordstateColumn.HeaderText = Glossary.RecordStateTitle;
        var alternateStatusColumn = new DataGridViewTextBoxColumn();
        alternateStatusColumn.Name = Glossary.AliasAlternateStatus;
        alternateStatusColumn.HeaderText = Glossary.AlternateStatusTitle;
        var alternateNumberColumn = new DataGridViewTextBoxColumn();
        alternateNumberColumn.Name = Glossary.AliasAlternateNumber;
        alternateNumberColumn.HeaderText = Glossary.AlternateNumberTitle;
        AlternateDGV.AllowUserToResizeColumns = true;
        AlternateDGV.AllowUserToResizeRows = false;
        //TODO: For test only, remove it
        AlternateDGV.Columns.AddRange(recordstateColumn, alternateStatusColumn, alternateNumberColumn);
        AlternateDGV.Rows.Add("added", "A", "POS-100");
    }

如何使这些属性发挥作用?

数据网格视图的AllowUserToResizeColumns和AllowUserToreszeRows不';不起

只需播放所有属性,就会发现AutoSizeColumnsMode必须设置为None才能使AllowUserToResizeColumns和AllowUserToreszeRows工作。

AutoSizeColumnsMode = None

在我的情况下,它不起作用,因为我有以下行:

Grid.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;

换句话说,如果你要求一列填满所有可用空间,用户将无法调整其大小(至少在Windows 10上是这样)。但如果你的整个网格都设置为"填充",就像这样:

Grid.AutoSizeColumnsMode =  DataGridViewAutoSizeColumnsMode.Fill;

则将允许调整大小。