winforms - Datagridview 列宽

标签 winforms datagridview datagridviewcolumn

enter image description here我有与 Winform 中的 datagridview 相关的问题。

我的左侧面板中有一个表名称列表。当我单击表格时,我会在右侧面板中显示表格内容。我通过获取数据并将数据源分配给 dgv 在 datagridview 中显示数据。

我正在将以下属性设置为 dgv。

dgTemp.Dock = DockStyle.Fill;
dgTemp.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
dgTemp.AutoSize = true;
dgTemp.DefaultCellStyle.WrapMode = DataGridViewTriState.True;
dgTemp.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
dgTemp.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
dgTemp.ReadOnly = true;
dgTemp.AutoGenerateColumns = true;
dgTemp.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dgTemp.AllowUserToAddRows = false;

我的问题是我分配给 dgv 的数据源中可以有任意数量的列。因此,如果列数很少(例如 1 或 2),则 dgv 大小会非常小,并且右侧的空白空间看起来非常难看。 我无法使用自动 autosizecolumnmodefill,因为当有更多列时,所有列都会收缩,而扩展列不会让我在底部滚动

所以我的要求是

  1. datagridview 中的所有空间都应被填充。 (应覆盖所有区域)
  2. 当列较多时,应该出现滚动条,这样看起来更好

有什么我可以使用的事件或属性吗?

感谢期待。

最佳答案

试试这个:

dgTemp.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;

更新:

 dataGridView1.FirstDisplayedScrollingRowIndex = 5; //use 5 because you want to start from 5
        //you can have a horizontal scroll bar with this code :
        dataGridView1.FirstDisplayedScrollingColumnIndex = 10; //you can choose every column you wanna start with that column

更新2:

int rows = dataGridView1.Rows.Count;
        int columns = dataGridView1.Columns.Count;
        if (rows < 5 && columns < 10)
        {
            dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
        }
        else
        {
            dataGridView1.FirstDisplayedScrollingRowIndex = 5; //use 5 because you want to start from 5
            //you can have a horizontal scroll bar with this code :
            dataGridView1.FirstDisplayedScrollingColumnIndex = 10; //you can choose every column you wanna start with that column
        }

关于winforms - Datagridview 列宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12367516/

相关文章:

c# - 检查对象是否为空或 null

C# 应用程序在关闭自定义表单时崩溃

vb.net - 如何从标题文本属性获取 DGV 列的设计 > 名称属性

c# - 如何在不删除排序工具的情况下删除 datagridview 中的排序字形

c# - 在 C# 中的 DataGridView 中创建列

c# - ExecuteScalar 如果 DBNull 问题

c# - 更改系统托盘图标图像

c# - WinForms ComboBox - 单击文本输入时的事件

c# - 单元格焦点上的 CellValidating 错误

c# - 如何使用两种不同形式的相同方法?