DataGridView上的水平滚动条

时间:2015-02-10 14:48:24

标签: c# .net datagridview

在将列设置为填充的AutoSizeMode时,是否有办法获得水平滚动条?

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

2 个答案:

答案 0 :(得分:0)

你不能本身都有这两种行为 您必须使用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;
}

请注意,如果数据网格中有很多行,这可能非常耗时。

答案 1 :(得分:0)

有一个简单的方法,虽然它显然不是理想的:

  • 添加一个空的collumn,AutoSizeMode设置为最后填充
  • 并将最后一列的HeaderText设置为空字符串(我明显忘记在我的演示中执行...)

这样(几乎)就像第二列的AutoSizeMode设置为FIll一样。

这里,Column1和Column2的AutoSizeMode设置为DisplayedCells,Column3设置为Fill:

enter image description here enter image description here