datagridview的AllowUserToResizeColumns和AllowUserToResizeRows不起作用

时间:2015-12-30 11:00:47

标签: c# winforms datagridview

我有一个datagridview,我希望允许用户调整列的大小并防止hom调整行的大小。我在设计中和运行时设置属性,但它不会影响datagridview。 相反的情况是,行可以调整大小而列不是。 我试图反转属性值但结果相同。

    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");
    }

如何使这些属性有效?

2 个答案:

答案 0 :(得分:1)

只需使用所有属性,发现必须将AutoSizeColumnsMode设置为None才能使AllowUserToResizeColumns和AllowUserToResizeRows正常工作。

public void removeAll()

答案 1 :(得分:0)

就我而言,它没有用,因为我有这条线:

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

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

Grid.AutoSizeColumnsMode =  DataGridViewAutoSizeColumnsMode.Fill;

然后将允许调整大小。