C# DataGridView上的水平滚动条

C# DataGridView上的水平滚动条,c#,.net,datagridview,C#,.net,Datagridview,是否有一种方法可以在将列的AutoSizeMode设置为填充时使用水平滚动条 我有两列,我希望它们填充DataGridView的宽度。当行中内容的宽度超过DataGridView的宽度时,我希望启用水平滚动条。不知道怎么做。通过我所做的研究,我发现在AutoSizeMode中使用AllCell选项可以启用滚动条,但是,我希望这些行填充DataGridView。不能同时具有这两种行为。 您必须使用DataGridViewColumn.MinimumWidth属性对其进行编码。 下面是一个使用Dat

是否有一种方法可以在将列的AutoSizeMode设置为填充时使用水平滚动条


我有两列,我希望它们填充DataGridView的宽度。当行中内容的宽度超过DataGridView的宽度时,我希望启用水平滚动条。不知道怎么做。通过我所做的研究,我发现在AutoSizeMode中使用AllCell选项可以启用滚动条,但是,我希望这些行填充DataGridView。

不能同时具有这两种行为。 您必须使用DataGridViewColumn.MinimumWidth属性对其进行编码。 下面是一个使用DataGridView的CellValueChanged事件的示例,但您必须根据具体情况调整它:

private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
    dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
    foreach (DataGridViewColumn column in dataGridView1.Columns)
        column.MinimumWidth = column.Width;
    dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
}

小心,如果数据网格中有很多行,这可能会非常耗时。

有一种简单的解决方法,但显然并不理想:

添加一个空的collumn,并在末尾填充AutoSizeMode集 并将最后一列的HeaderText设置为空字符串,这是我在演示中忘记的。。。 这样看来,第二列的AutoSizeMode几乎被设置为FIll

此处,Column1和Column2将AutoSizeMode设置为DisplayedCells,Column3用于填充:


我担心这是唯一的办法。我得做些测试看看它能有多慢。感谢您的响应。DataGridViewAutoSizeColumnsMode.DisplayedCells可以在速度太慢时为您提供帮助,但您也必须覆盖滚动事件。