【问题标题】:RichTextBox text causing error in Microsoft Visual StudioRichTextBox 文本在 Microsoft Visual Studio 中导致错误
【发布时间】:2019-05-30 17:10:55
【问题描述】:

我试图让我的程序在文本框中显示文本,但是当我粘贴文本时会导致错误

richTextBox1.Text = "/give @p sign 1 0 {    BlockEntityTag: {        Text1: "{\"text\":\"BUY FOR\",\"bold\":true,\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/playsound ui.button.click master @a ~ ~ ~ 10 2\"}}",        Text3: "{\"text\":\"2           LVL\",\"color\":\"white\",\"bold\":true,\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/scoreboard players tag @p add SHOP2\"}}"    },    display: { Name: "XP SIGN"    }}";

错误 CS1002 ;预期 MSC C:\Users\Aprute\Desktop\Minecraft Shop Creator\MSC\MSC\Form1.cs

错误 CS1056 意外字符 '\' MSC C:\Users\Aprute\Desktop\Minecraft Shop Creator\MSC\MSC\Form1.cs

错误 CS1002 ;预期 MSC C:\Users\Aprute\Desktop\Minecraft Shop Creator\MSC\MSC\Form1.cs

错误 CS1513 } 预期 MSC C:\Users\Aprute\Desktop\Minecraft Shop Creator\MSC\MSC\Form1.cs

错误 CS1002 ;预期 MSC C:\Users\Aprute\Desktop\Minecraft Shop Creator\MSC\MSC\Form1.cs

错误 CS1513 } 预期 MSC C:\Users\Aprute\Desktop\Minecraft Shop Creator\MSC\MSC\Form1.cs

错误 CS1002 ;预期 MSC C:\Users\Aprute\Desktop\Minecraft Shop Creator\MSC\MSC\Form1.cs

常量 MSC C:\Users\Aprute\Desktop\Minecraft Shop Creator\MSC\MSC\Form1.cs 中的错误 CS1010 换行

错误 CS1519 无效令牌 '";'在类、结构或接口成员声明 MSC C:\Users\Aprute\Desktop\Minecraft Shop Creator\MSC\MSC\Form1.cs

错误 CS1022 类型或命名空间定义,或预期文件结尾 MSC C:\Users\Aprute\Desktop\Minecraft Shop Creator\MSC\MSC\Form1.cs

【问题讨论】:

  • 文字中有几个未转义的双引号。逃离他们。
  • 谢谢你能告诉我或告诉我怎么做吗?
  • 添加反斜杠。

标签: c#


【解决方案1】:

你需要这样转义你的文本:

richTextBox1.Text = @"/give @p sign 1 0 {    BlockEntityTag: {        Text1: ""{\""text\"":\""BUY FOR\"",\""bold\"":true,\""clickEvent\"":{\""action\"":\""run_command\"",\""value\"":\""/playsound ui.button.click master @a ~ ~ ~ 10 2\""}}"",        Text3: ""{\""text\"":\""2           LVL\"",\""color\"":\""white\"",\""bold\"":true,\""clickEvent\"":{\""action\"":\""run_command\"",\""value\"":\""/scoreboard players tag @p add SHOP2\""}}""    },    display: { Name: ""XP SIGN""    }}"

【讨论】:

  • 我只是想了解您为使其正常工作所做的更改。
  • 使用逐字字符串文字和转义 "(使用 "" 代替)起到了作用。这里有更多信息和 Jon Skeet 解释的链接:stackoverflow.com/a/556142/10713658
  • @Aprute 抱歉回复晚了。您需要在原始文本中转义两个字符,` and ", which should be escaped \` 和 \"。但是,我使用了逐字字符串(注意 @),它只需要您转义 @ 987654327@到""
【解决方案2】:

正如sticky _bit* 指出的那样,您需要转义字符串中的任何引号。

richTextBox1.Text =  "/give @p sign 1 0 {    BlockEntityTag: {        Text1: \"{\"text\":\"BUY FOR\",\"bold\":true,\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/playsound ui.button.click master @a ~ ~ ~ 10 2\"}}\",        Text3: \"{\"text\":\"2           LVL\",\"color\":\"white\",\"bold\":true,\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/scoreboard players tag @p add SHOP2\"}}\"    },    display: { Name: \"XP SIGN\"    }}";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 2023-04-01
    • 2014-06-07
    • 2014-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多