【问题标题】:How to set rows' height to automatically resize so contents fit如何设置行的高度以自动调整大小以适应内容
【发布时间】:2016-10-21 17:42:49
【问题描述】:

我正在研究 DataGridView,想知道是否有一个属性可以在内容需要时自动使单元格变大。

到目前为止,我在 DataGridViewBindingComplete 处理程序的末尾:

dataGridView1.AutoResizeRows(DataGridViewAutoSizeRowsMode.AllCells);

但不幸的是,这并没有奏效。

到目前为止,这是我尝试过的:

public partial class Form1 : Form
{
    private void dgv1BindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
    {
        dataGridView1.AutoResizeRows(DataGridViewAutoSizeRowsMode.AllCells);
    }

    public Form1()
    {
        InitializeComponent();

        // [...] set up datasource: orders

        dataGridView1.AutoGenerateColumns = false;
        dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
        dataGridView1.DataSource = orders;

        DataGridViewTextBoxColumn idCol = new DataGridViewTextBoxColumn();
        idCol.DataPropertyName = "id";
        idCol.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCellsExceptHeader;
        idCol.HeaderText = "#";
        idCol.DisplayIndex = 0;

        DataGridViewTextBoxColumn placedCol = new DataGridViewTextBoxColumn();
        placedCol.DataPropertyName = "placed";
        placedCol.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCellsExceptHeader;
        placedCol.HeaderText = "Time Placed";
        placedCol.DisplayIndex = 1;

        // [...] more of these columns

        dataGridView1.Columns.Add(idCol);
        dataGridView1.Columns.Add(placedCol);
        // [...] adding the rest of the columns

        dataGridView1.DataBindingComplete += dgv1BindingComplete;
    }
}

结果如下:

【问题讨论】:

    标签: c# winforms datagridview


    【解决方案1】:

    答案隐藏在另一个 Stackoverflow 问题中:How to set DataGridView textbox column to multi-line?

    将 DefaultCellStyle.WrapMode 设置为 TriState.True 成功了。

    【讨论】:

      【解决方案2】:
      datagridview1.RowsDefaultCellStyle.WrapMode = DataGridViewTriState.True
      datagridview1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCellsExceptHeaders
      

      【讨论】:

        【解决方案3】:

        datagridviewAutoSizeColumnMode属性设置为AllCells并勾选。

        【讨论】:

        • 我试过了,但由于某种原因,单元格仍然没有换行或调整它们的高度。
        • 不得不重新开始,因为我将设计器导航到了死胡同。等我再次遇到问题时会发布代码,应该很快。
        • 我猜你的意思是 AutoSizeRowsMo​​de
        猜你喜欢
        • 2013-06-05
        • 2016-06-13
        • 1970-01-01
        • 1970-01-01
        • 2014-09-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多