DataGridView 上的水平滚动条

问题描述 投票:0回答:3

有没有办法让水平滚动条同时将列的 AutoSizeMode 设置为填充?

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

c# .net datagridview
3个回答
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;
}

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


0
投票

这是一篇非常旧的帖子,但我想我会添加它。如果您不介意将 AutoSizeMode 设置为 Fill。

将有问题列的 AutoSizeMode 设置为 AllCells。

这将调整列标题的大小并强制其超出可见区域,从而显示水平滚动条。


0
投票

有一个简单的解决方法,尽管它显然并不理想:

  • 添加一个空列,并将
    AutoSizeMode
    设置为
    Fill
    在末尾
  • 并将最后一列的
    HeaderText
    设置为空字符串(我显然在演示中忘记了这样做)

这样,它(几乎)看起来就好像第二列的

AutoSizeMode
设置为
Fill

这里,

Column1
Column2
AutoSizeMode
设置为
DisplayedCells
Column3
设置为
Fill

enter image description here

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.