2014-02-10 3 views
0

Хорошо, у меня есть строка,как сделать строку, возвращаемую ResourceManager.GetString не дословно

string textToShow = "this\nrocks" 

, которые, если положить в этикетке в окне WinForms будет показывать

this 
rocks 

Какой результат я Мне бы хотелось получить. Теперь, вместо установки textToShow в коде, я установил его в файле ресурсов. Когда я попытался получить значение из файла ресурсов с помощью

Properties.Resources.ResourceManager.GetString("textToShow"); 

вся строка, а не будет рассматриваться как дословное, показывая

this\nrocks 

, если положить в метке в окне WinForms. Это не тот результат, который я ищу. Каков наилучший способ хранения строк со специальными символами в файле ресурсов? Я могу сделать строку замены для каждого специальных символов, как

string.Replace(@"\n", "\n"); 

, но тогда мне нужно заменить каждые специальные символы всякий раз, когда я называю метод ResourceManager.GetString, который я думаю, это не самое элегантное решение. Если есть несколько способов сделать строку, возвращаемую из метода ResourceManager.GetString, не дословно, пожалуйста, скажите мне.

Благодаря

ответ

1

Это уже ответил здесь: StackOverflow: How to deal with newline

В основном у вас есть два варианта: полезные

Использование shift + enter в ресурсах менеджера текст Editer, чтобы добавить новую строку.

Или используйте String.Format() для замены {0} с \n на чтение.

+0

Это то, что я ищу. Благодаря! – dumdum

0

На ресурс типа редактора "это < Shift + Enter> камни" в качестве значения ресурса.

0

В .NET Framework 4.5 имеет функции экранирования в, как показано здесь:

using System.Text.RegularExpressions; 
Regex.Unescape(Properties.Resources.ResourceManager.GetString("textToShow")); 

решает проблему. Теперь вы можете использовать \n и \u в файлах ресурсов.

Смежные вопросы