2013-05-13 94 views
4

使用C#Windows Forms;DataGridView单元格中的多行

我有一个DataGridView与一些单元格。我想在单元格中显示数字(1-9)。这些数字应该以3x3格式彼此放置在一起。

我环顾四周,只结束了一个相当复杂的richtextbox单元自定义实现。

有没有一种方法可以绘制一个custom rectangle,然后将其实现为backgroundimage的单元格或其他?该单元需要重绘数次。所以我不能只打电话paint事件我猜。

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

回答

14

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

例子:

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

后来补充:

由于Adrian在评论说 - 你将需要:

  1. 设置为DataGridViewColumn的WrapMode到DataGridViewTriState.True

  2. 确定哟u盘的高度为行,或设置在DataGridView的AutoSizeRowsModeDataGridViewAutoSizeRowsMode.AllCells

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

+0

已经做到了这一点。问题在于单元格是文本框而不是富文本框。因此,无论给定字符串如何,所有内容都位于1行:/ – dylanmensaert 2013-05-13 03:24:57

+4

除此之外,您还需要将DataGridViewColumn的'WrapMode'设置为'DataGridViewTriState.True',并确保为该行设置高度,或者将DataGridView的'AutoSizeRowsMo​​de'设置为'DataGridViewAutoSizeRowsMo​​de.AllCells' – Adrian 2013-05-13 03:30:34

+0

这工作,哇。谢谢! – dylanmensaert 2013-05-13 03:35:34