DataGridView 内容太长时换行显示

时间:2022-06-14 13:07:43
现在做一个Winform项目。用DataGridView显示信息。我设了 this.dataGridView1.RowsDefaultCellStyle.WrapMode = DataGridViewTriState.True;
让它自动换行。然后也设了它的AutoSizeRowMode 为AllCells。但它就是还不能多行显示。上网找了许多资料都说用:
1,让整个DataGridView的所有cell都可以自动换行。 
Dgv.RowsDefaultCellStyle.WrapMode = DataGridViewTriState.true; 
2,让DataGridView的一列所有cell都可以自动换行。 
Dgv.Columns[0].CellTemplate.Style.WrapMode = DataGridViewTriState.true; 
3,也可以让奇数行和偶数行有不同的换行设定。 
Dgv.AlternatingRowsDefaultCellStyle.WrapMode = DataGridViewTriState.true;
什么的。但我试都不行。
请问有谁知道的。我用的是VS2008。不知道会不会与之前的版本操作 DataGridView不同。或者有没有什么办法。可以在绑定数据到DataGridView 的时候对它的值进行换行处理。我要的结果如下:
  列1             列2             列3
-----------------------------------------
 sssss           ssss            ssssss
                                 sssssss
-----------------------------------------
而不是现在的:
  列1            列2             列3
-----------------------------------------
 ssssss         ssssss          sssssssssssssssssssssssss
-----------------------------------------------
请知道的帮帮忙。谢谢!  

24 个解决方案

#1


设置行宽试试

#2


1、设置下DefaultCellStyle属性里的WrapMode属性,默认为false,设置为true。
2、设置下AutoSizeRowsMode属性为:DisplayedCellsExceptHeaders。 

#3


多谢楼上的回答。以上二楼的方法。我都找到了。也试了。不行。没有用。

#4



你保存进数据库的时候直接保存进去,比如你输入框是 
txtone这个文本狂保存内容,那么你这样 
直接把这个文本框的txtone.text保存进数据库, 

然后在取出的时候处理一下就可以,比如 

string   strT   =   数据库里保存的刚才的内容 
strT   =   strT.Replace( "\r\n ", " <br> "); 
这样现在strT只要付给一个label标签,它就能正常显示换行出来了

#5


上楼用"<br>"我的是WinForm项目。用<br>?????

#6


学习,帮顶。。。

#7


RowsDefaultCellStyle.WrapMode = DataGridViewTriState.true; 
AutoSizeRowsMode属性为:DisplayedCellsExceptHeaders。  
结果是:
DataGridView 内容太长时换行显示
不知是不是你要的结果

#8


恩。是要这种结果。请问楼上用的是VS多少版本的。就用:
RowsDefaultCellStyle.WrapMode = DataGridViewTriState.true;  
AutoSizeRowsMode属性为:DisplayedCellsExceptHeaders。可以实现。

#9


不过楼上的换成英文你试试。我应该会发现也不能达到效果的。

#10


英文中间要是没有空格是不会换行的

#11


DataGridView 内容太长时换行显示

#12


但问题是。如果是英文那么一个单词就会有一个空格。这样的话也太不合常理了吧。有没有什么办法解决这个问题。请高手帮帮忙。谢谢。

#13


DataGridView 内容太长时换行显示
没有空格

#14


只要有空格就可以换行

#15


所以就是说一个单词就一行的话。是不可行的。继续请高手帮忙。

#16


一个单词就一行的话只能手工处理,没有办法

#17


RowsDefaultCellStyle.WrapMode = DataGridViewTriState.true;  
AutoSizeRowsMode属性为:DisplayedCellsExceptHeaders

#18


继续关注!

#19


没有别的分隔符的话,只能根据宽度
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)  
{  
}重新设置单元格值

#20


你们说的这些方法。我在网上也找到了。试了。没有用。

#21


在定义数据时不要定义成可变的

#22


谢谢,好使

#23


引用 2 楼 zhouzhangkui 的回复:
1、设置下DefaultCellStyle属性里的WrapMode属性,默认为false,设置为true。
2、设置下AutoSizeRowsMode属性为:DisplayedCellsExceptHeaders。

这个才是正解,楼主居然不给分,鄙视... ....

#24


2楼方法管用, 厉害

#1


设置行宽试试

#2


1、设置下DefaultCellStyle属性里的WrapMode属性,默认为false,设置为true。
2、设置下AutoSizeRowsMode属性为:DisplayedCellsExceptHeaders。 

#3


多谢楼上的回答。以上二楼的方法。我都找到了。也试了。不行。没有用。

#4



你保存进数据库的时候直接保存进去,比如你输入框是 
txtone这个文本狂保存内容,那么你这样 
直接把这个文本框的txtone.text保存进数据库, 

然后在取出的时候处理一下就可以,比如 

string   strT   =   数据库里保存的刚才的内容 
strT   =   strT.Replace( "\r\n ", " <br> "); 
这样现在strT只要付给一个label标签,它就能正常显示换行出来了

#5


上楼用"<br>"我的是WinForm项目。用<br>?????

#6


学习,帮顶。。。

#7


RowsDefaultCellStyle.WrapMode = DataGridViewTriState.true; 
AutoSizeRowsMode属性为:DisplayedCellsExceptHeaders。  
结果是:
DataGridView 内容太长时换行显示
不知是不是你要的结果

#8


恩。是要这种结果。请问楼上用的是VS多少版本的。就用:
RowsDefaultCellStyle.WrapMode = DataGridViewTriState.true;  
AutoSizeRowsMode属性为:DisplayedCellsExceptHeaders。可以实现。

#9


不过楼上的换成英文你试试。我应该会发现也不能达到效果的。

#10


英文中间要是没有空格是不会换行的

#11


DataGridView 内容太长时换行显示

#12


但问题是。如果是英文那么一个单词就会有一个空格。这样的话也太不合常理了吧。有没有什么办法解决这个问题。请高手帮帮忙。谢谢。

#13


DataGridView 内容太长时换行显示
没有空格

#14


只要有空格就可以换行

#15


所以就是说一个单词就一行的话。是不可行的。继续请高手帮忙。

#16


一个单词就一行的话只能手工处理,没有办法

#17


RowsDefaultCellStyle.WrapMode = DataGridViewTriState.true;  
AutoSizeRowsMode属性为:DisplayedCellsExceptHeaders

#18


继续关注!

#19


没有别的分隔符的话,只能根据宽度
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)  
{  
}重新设置单元格值

#20


你们说的这些方法。我在网上也找到了。试了。没有用。

#21


在定义数据时不要定义成可变的

#22


谢谢,好使

#23


引用 2 楼 zhouzhangkui 的回复:
1、设置下DefaultCellStyle属性里的WrapMode属性,默认为false,设置为true。
2、设置下AutoSizeRowsMode属性为:DisplayedCellsExceptHeaders。

这个才是正解,楼主居然不给分,鄙视... ....

#24


2楼方法管用, 厉害