【问题标题】:Problem with resizing columns added dynamically in run time to datagridview调整在运行时动态添加到datagridview的列大小的问题
【发布时间】:2019-10-07 12:57:10
【问题描述】:

我有一个 RightToLeft = true 的简单表单。 在表单中有一个 AutoScroll = true 的面板。在面板中有一个很长的宽度(2000px)的 DataGridView。 用户可以通过单击“添加列”按钮来添加列。

这是“添加列”按钮点击事件的代码:

 private void button1_Click(object sender, EventArgs e)
    {
        _index++;
        dataGridView1.Columns.Add(new DataGridViewTextBoxColumn() { Name = $"Col{_index}",HeaderText = $"Col{_index}"});

    }

问题是:当用户添加一些列并第一次单击 ColumnHeader 的一个边框以拖动它并调整列的大小时,面板将滚动到左端并且列将非常宽,这自然不是我想要的行为.在接下来的点击和调整每件事情的完美。 我该如何解决这个问题? 谢谢

【问题讨论】:

  • 你有[DataGridView].AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill,也许吧?否则,您可以在创建列时设置列的Width
  • AutoSizeColumnsMode 有它的默认值 = none。创建列时设置宽度并不能解决问题

标签: c# winforms user-interface datagridview datagridviewcolumn


【解决方案1】:

您可以在每次添加新列时调整列的大小

你可以检查一下

PS : 确保将 Row Header 设置为 false 以免与网格宽度冲突

private void updateWidth()
        {
            foreach (DataGridViewColumn item in dataGrid.Columns)
            {
                item.Width = dataGrid.Columns.Count == 0 ?
                                dataGrid.Width
                                : (int)(dataGrid.Width / dataGrid.Columns.Count);
            }
        }
int _index = 0;
private void button1_Click(object sender, EventArgs e){

            var col = new DataGridViewColumn();
            col.Name = $"Col{_index++}";
            col.CellTemplate = new DataGridViewTextBoxCell();
            dataGrid.Columns.Add(col);
            updateWidth();
        }
    }

对于固定宽度,您可以这样做(将 AutoSizeColumnsMode 设置为 None):

int _index = 0;
int fixedWidth = 200;
private void button1_Click(object sender, EventArgs e)
{

            var col = new DataGridViewColumn();
            col.Name = $"Col{_index++}";
            col.Width = fixedWidth;
            col.CellTemplate = new DataGridViewTextBoxCell();
            dataGrid.Columns.Add(col);
 }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-15
    • 2021-11-11
    • 1970-01-01
    • 2012-11-12
    • 2021-11-05
    • 2012-10-17
    • 1970-01-01
    相关资源
    最近更新 更多