【问题标题】:DataGridView.AutoResizeColumns is ignoring column header heightDataGridView.AutoResizeColumns 忽略列标题高度
【发布时间】:2015-12-15 03:55:17
【问题描述】:

我有一个DataGridView,我希望将哪些列调整为该列所有项目中最大的单元格,包括标题。我有这个:

dataGridViewMain.ColumnHeadersHeight = 60;
dataGridViewMain.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);

为什么该代码会导致几列如下所示:

显然预留的空间比需要的多,我检查了所有行。无包含超过 3 个字符。这种行为也发生在不同的列上。看起来AutoResizeColumns 在计算所需空间时没有考虑到列标题的大小为 60 并且可以容纳各种文本行。

【问题讨论】:

  • 是重复列吗?
  • 我不确定我是否理解,但是不,此列在任何地方都没有重复。

标签: c# winforms datagridview


【解决方案1】:

您的网格标题正在重新调整标题文本的大小。 dataGridViewMain中有一个属性需要调整。

如下设置;

dataGridViewMain.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;

这也可以通过属性窗口设置;

【讨论】:

  • 你解释错了我的问题。我希望它被调整大小。我的问题是:为什么要重新调整大小但在单词的右侧留下这么多空白空间。我希望它正确调整为最大的单元格,包括标题。它显然没有这样做。
  • 最后一个不适合一行。所以它会像这样把它分成两行。尝试更改模式,看看是否符合您的要求
  • 文本适合所有行。没有超过 3 个字符的行,标题是最大的单元格,这发生在不同的列上,而不仅仅是我发布的那一个。
【解决方案2】:

试试看:)

this.dataGridViewMain.EnableHeadersVisualStyles = false;
this.dataGridViewMain.ColumnHeadersHeight = 60;

【讨论】:

    【解决方案3】:

    试试这个:

    this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.DisableResizing;

    您可以在表单的设计器中更改它,以查看表单构建过程中的更改。

    这对我很有效。

    【讨论】:

      【解决方案4】:
      this.dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing;
      this.dataGridView1.ColumnHeadersHeight = 40;
      this.dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
      

      【讨论】:

      • 社区鼓励在代码中添加解释,而不是纯粹基于代码的答案(参见here)。另外,请查看formatting help page 以改进您的格式。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-24
      • 2017-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-25
      相关资源
      最近更新 更多