使用C#
Windows Forms
;
我有一个DataGridView
带有多个单元格的。我想在单元格中显示数字(从 1 到 9)。3x3
数字应以某种格式放在一起。
我环顾四周,最终得到了一个相当复杂的richtextbox
单元格自定义实现。
有没有办法我可以绘制一个custom rectangle
然后backgroundimage
在单元格或其他东西上实现它?单元格需要重绘几次。所以我不能只调用paint
我猜的事件。
注意:用户不得编辑单元格。
使用C#
Windows Forms
;
我有一个DataGridView
带有多个单元格的。我想在单元格中显示数字(从 1 到 9)。3x3
数字应以某种格式放在一起。
我环顾四周,最终得到了一个相当复杂的richtextbox
单元格自定义实现。
有没有办法我可以绘制一个custom rectangle
然后backgroundimage
在单元格或其他东西上实现它?单元格需要重绘几次。所以我不能只调用paint
我猜的事件。
注意:用户不得编辑单元格。
我不知道这是否会让您满意,但您可以使用Environment.NewLine
在单元格内创建简单的换行符。
例子:
string nl = Environment.NewLine; // new line variable
string data = "1 2 3" + nl + "4 5 6" + nl + "7 8 9";
后来补充:
正如阿德里安在评论中所说 - 您将需要:
将 WrapMode 设置DataGridViewColumn
为DataGridViewTriState.True
确保为行设置高度,或将 DataGridView 设置AutoSizeRowsMode
为DataGridViewAutoSizeRowsMode.AllCells
如果您不想编辑该列 - 您可以将DataGridView.Column.ReadOnly
属性设置为true
.
更新:我花了一段时间才找到带有上述信息的这个属性。在 VS C# 2017 中,WrapMode 属性位于 datagridviewDefaultCellStyle
对话框中。
作为补充:
dataGridView.Columns[x].DefaultCellStyle.WrapMode = DataGridViewTriState.True;
dataGridView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
x = 列索引
右键单击GridView>>属性>>DefaultCellStyle>>Wrapmode=True