【问题标题】:Is it possible to prevent a multi line HeaderText in a DataGridView?是否可以防止 DataGridView 中出现多行 HeaderText?
【发布时间】:2012-03-19 10:33:59
【问题描述】:

HeaderText属性的长度达到一定的字符限制并且文本中有空格时,WinForms会自动在标题中插入一个链接中断:

我想要什么:

+-----------------------+---
| Measurement Value (%) | ...
+-----------------------+---

我得到了什么:

+-----------------------+---
| Measurement Value     | ...
|(%)                    |
+-----------------------+---

有足够的空间来显示所有没有换行符的标题单元格,但无论出于何种原因,即使我将AutoSizeMode 设置为HeaderCell,它仍然会被插入。

如何防止这些换行符,同时仍保留HeaderText 中的空格?

【问题讨论】:

    标签: .net winforms datagridview header width


    【解决方案1】:

    DataGridViewColumnHeadersDefaultCellStyle 属性有一个名为WrapMode 的布尔属性。默认情况下是这样。设置为 false 以设置所需的行为。

    【讨论】:

      【解决方案2】:

      您不能直接将其设置为 false。将其设置为 false 的正确方法是:

      this.dataGridView1.ColumnHeadersDefaultCellStyle.WrapMode = DataGridViewTriState.False; 
      

      【讨论】:

        【解决方案3】:

        如果您想在 DataGridView 控件中停止多行文本,则 Wrap Mode 应为 false 并设置填充

        【讨论】:

          【解决方案4】:

          您可以将ColumnHeadersDefaultCellStyle.WrapMode 设置为DataGridViewTriState.False 作为已经提出的其他答案

          您可以将标题字符串中的空格\s 替换为不可破坏的空格\u00A0。第二种解决方案的好处是您可以在标题字符串中使用\n 设置手动换行符并避免自动换行。例如:

          +----------------------------------------------+
          | A\u00A0very\u00A0long\u00A0first\u00A0Line\n |
          | A\u00A0second\u00A0very\u00A0long\u00A0line  |
          +----------------------------------------------+
          

          第一个解决方案是不允许手动换行(一切都是一行)。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-11-13
            • 1970-01-01
            • 2011-05-31
            • 1970-01-01
            • 1970-01-01
            • 2012-09-18
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多