【问题标题】:String taken from DataTable to DataGridView: "\n" is not interpreted as new line从 DataTable 到 DataGridView 的字符串:“\n”不被解释为新行
【发布时间】:2018-05-14 15:37:04
【问题描述】:

我有 DataTable,其中包含一些带有“\n”符号的字符串。 我需要将这些字符串放入 DataGridView 单元格中。 "\n" 应该被解释为换行。

我在做什么:

dataGridView1.Rows[1].Cells["actionColumn"].Value = subStepLine["action"].ToString();

subStepLine["action"] 是 DataTable 中的单元格,其中字符串位于“firstLine\n\nsecondLine”内

我想在 DataGridView 中显示为:

"第一行

第二行“

但它显示为:“firstLine\n\nsecondLine”。

另一方面,我做的时候是这样的:

dataGridView1.Rows[1].Cells["actionColumn"].Value = "firstLine\n\nsecondLine"

然后就可以了,'\n\n' 被视为新行。

我将 wrapMode 设置为 true。

我也应该在 DataTable 中设置一些东西吗?

如果需要更多代码,我可以添加它,只是不想让我的帖子不可更新

【问题讨论】:

    标签: c# datagridview newline c#-6.0


    【解决方案1】:

    如果我理解正确,您希望有一个单元格来显示多行文本,如果是这样,请尝试用 Environment.NewLine() 替换 \n 文字(这将解析为 \r\n)。

    这似乎也是重复的:C#: multiline text in DataGridView control

    【讨论】:

    • 我见过这个,但是没有用。首先,只是为了尝试,在输入中我已将 '\n' 更改为 '\r\n' 以查看会发生什么,但它也没有更改为新行。当我想用 Environment.NewLine() 替换 '\n' 时,通过检查 if (subStepLine["action"].ToString().Contains("\n")) 然后对这个字符串做一些事情,那么即使 @ 中有 "\n" 字符串,它也永远不会进入这个 'if' 语句987654323@.
    • 这可能是因为您在调用 Contains 时没有转义 \n 字符。似乎不会在换行符上中断的字符串包含转义的新行(\\n而不是\n),尝试查找并替换它们。
    • 啊,所以我的问题是那些转义的新行......我已经这样做了dataGridView1.Rows[firstNewRowIndex].Cells["actionColumn"].Value = subStepLine["action"].ToString().Replace("\\n", Environment.NewLine);,它工作正常。谢谢!
    • 很高兴我能帮上忙。 :)
    猜你喜欢
    • 2013-10-13
    • 1970-01-01
    • 1970-01-01
    • 2021-02-24
    • 2015-11-07
    • 1970-01-01
    • 1970-01-01
    • 2016-06-11
    • 1970-01-01
    相关资源
    最近更新 更多