C# .NET Framework中DataGridView显示JSON文本换行失效问题
解决方案
第一步:配置DataGridView支持换行展示
这是换行生效的前提,默认DataGridView单元格不会自动换行,需要手动开启对应属性:
在窗体初始化/DataGridView初始化逻辑中添加如下代码:
// 全局开启所有单元格文本自动换行 _problemsList.DefaultCellStyle.WrapMode = DataGridViewTriState.True; // 设置行高自动适配内容,避免换行后内容被截断 _problemsList.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
如果你只需要指定列(示例中展示文本的索引为1的列)支持换行,不需要全局生效,可以单独对目标列配置:
_problemsList.Columns[1].DefaultCellStyle.WrapMode = DataGridViewTriState.True;
第二步:处理JSON文本中的换行符
JSON反序列化后,部分场景下换行符会保留转义格式\\n,需要统一替换为系统识别的换行符,修改单元格赋值的代码如下:
// 先替换所有转义/未转义的换行符为系统换行符,再赋值给单元格 string textContent = userProblems["text"].ToString() .Replace("\\n", Environment.NewLine) .Replace("\n", Environment.NewLine); _problemsList.Rows[rowIndex].Cells[1].Value = textContent;
之前直接拼接Environment.NewLine不生效的核心原因是没有开启单元格的WrapMode属性,换行展示规则被默认禁用。
内容的提问来源于stack exchange,提问作者Hope1_
相关产品推荐
相关产品推荐

