13

使用C# Windows Forms;

我有一个DataGridView带有多个单元格的。我想在单元格中显示数字(从 1 到 9)。3x3数字应以某种格式放在一起。

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

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

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

4

3 回答 3

26

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

例子:

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

后来补充:

正如阿德里安在评论中所说 - 您将需要:

  1. 将 WrapMode 设置DataGridViewColumnDataGridViewTriState.True

  2. 确保为行设置高度,或将 DataGridView 设置AutoSizeRowsModeDataGridViewAutoSizeRowsMode.AllCells

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

更新:我花了一段时间才找到带有上述信息的这个属性。在 VS C# 2017 中,WrapMode 属性位于 datagridviewDefaultCellStyle对话框中。

于 2013-05-13T03:20:00.223 回答
3

作为补充:

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

x = 列索引

于 2020-07-22T08:33:24.703 回答
2

右键单击GridView>>属性>>DefaultCellStyle>>Wrapmode=True

于 2021-01-23T23:14:05.960 回答