Многострочный текстовый блок с пользовательским переносом слов - PullRequest
1 голос
/ 19 сентября 2011

Я начинаю программировать на .Net и C #, и в настоящее время я застрял. У меня есть очень похожая проблема, как сообщение по этому вопросу в stackoverflow: C #: многострочный TextBox с TextBox.WordWrap Отображение длинной строки Base64 .

Ответом на этот вопрос был следующий блок кода:

public IEnumerable<string> SimpleWrap(string line, int length) 
{ 
   var s = line; 
   while (s.Length > length) 
   { 
     var result = s.Substring(0, length); 
     s = s.Substring(length); 
     yield return result; 
   } 
   yield return s; 
} 

Я не знаю, как использовать этот кусок кода. Может кто-нибудь предоставить мне фрагмент кода, который использует этот конкретный метод для написания текста, который автоматически также вставляет новую строку. Мой код в настоящее время выглядит так:

var length = GetMaximumCharacters(txtBxResults);
var txtWrap = SimpleWrap(stringValue, length);
foreach (string s in txtWrap)
{
    txtBxResults.AppendText(s);
}

Если я использую метод AppendText, он просто записывает весь текст в одну строку, которая мне не нужна. Будем благодарны за любые ответы.

Спасибо, KK

Ответы [ 2 ]

1 голос
/ 19 сентября 2011

Вы почти правы, вам просто нужно вставить символ новой строки.Попробуйте

foreach (string s in txtWrap)
{
  txtBxResults.AppendText(s + Environment.NewLine);
}
0 голосов
/ 20 сентября 2011

Ну, я не могу дать вам точный код прямо сейчас (я вернусь и опубликую его позже), но в целом вам нужно определить индекс следующей запятой и, если символы в текущей строке + этот индекс> длина строки, затем добавьте новую строку перед этим соединением. Если вы сделаете это в bucle, когда это будет сделано, оно должно быть правильно отформатировано, также примите во внимание, что последнее соединение не будет иметь (я думаю) запятую в конце.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...