【问题标题】:Multiple lines in a DataGridView cellDataGridView 单元格中的多行
【发布时间】:2013-05-13 03:12:14
【问题描述】:

使用C#Windows Forms;

我有一个DataGridView,其中包含多个单元格。我想在单元格中显示数字(从 1 到 9)。数字应以3x3 格式放在一起。

我环顾四周,最终得到了一个相当复杂的 richtextbox 单元的自定义实现。

有没有办法可以绘制custom rectangle,然后将其实现为单元格的backgroundimage 或其他东西?单元格需要重绘几次。所以我猜我不能只调用paint 事件。

注意:用户不得编辑单元格。

【问题讨论】:

标签: c# winforms datagridview


【解决方案1】:

我不知道这是否会让您满意,但您可以使用Environment.NewLine 在单元格内创建简单的换行符。

例子:

string nl = Environment.NewLine; // new line variable
string data = "1 2 3" + nl + "4 5 6" + nl + "7 8 9";

稍后添加:

正如Adrian 在 cmets 中所说 - 您需要:

  1. DataGridViewColumn 的 WrapMode 设置为 DataGridViewTriState.True

  2. 确保为行设置高度,或将 DataGridView 的 AutoSizeRowsMode 设置为 DataGridViewAutoSizeRowsMode.AllCells

如果您不想编辑该列 - 您可以将 DataGridView.Column.ReadOnly 属性设置为 true

更新: 我花了一段时间才找到具有上述信息的该物业。在 VS C# 2017 中,WrapMode 属性位于 datagridview DefaultCellStyle 对话框中。

【讨论】:

  • 已经这样做了。问题是单元格是文本框而不是富文本框。因此,无论给定字符串如何,所有内容都位于 1 行:/
  • 除此之外,您还需要将DataGridViewColumnWrapMode 设置为DataGridViewTriState.True,并确保设置行的高度,或者设置DataGridView 的@987654335 @到DataGridViewAutoSizeRowsMode.AllCells
  • @user1933169 我添加了如何禁用列编辑的信息。如果您需要更多详细信息 - 请在 cmets 中询问。
【解决方案2】:

作为补充:

dataGridView.Columns[x].DefaultCellStyle.WrapMode = DataGridViewTriState.True;
dataGridView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;

x = 列索引

【讨论】:

    【解决方案3】:

    在GridView上右键>>属性>>DefaultCellStyle>>Wrapmode=True

    【讨论】:

    • 它有效。作为补充:dataGridView.DefaultCellStyle.WrapMode = DataGridViewTriState.True;
    猜你喜欢
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-15
    • 1970-01-01
    • 1970-01-01
    • 2020-12-06
    相关资源
    最近更新 更多