2011-12-27 2 views
0

Я добавил много строк в абзац в RichTextBox.CaretPosition. Когда я хочу, чтобы удалить инлайн так: ПроизошлаStackoverflow in Removing Inline из абзаца

 var para = _rtb.CaretPosition.Paragraph; 

     Inline inlineToRemove = para.Inlines.FirstInline; 
     if (inlineToRemove != null) 
      para.Inlines.Remove(inlineToRemove); 

ошибка: StackOverflow

An unhandled exception of type 'System.StackOverflowException' occurred in mscorlib.dll 
+1

Боюсь, вам придется предоставить более подробную информацию о том, что вы делаете. Я попытался добавить 100000 строк в RichTextBox, а затем удалил первый, но у меня не было переполнения стека. Какие вызовы отображаются в окне «Стек вызовов» при ударе стека? Можете ли вы собрать [SSCCE] (http://sscce.org)? –

+0

Я разрабатываю токенированное текстовое поле и для каждого токена добавляю inline к richtextbox. у каждой линии есть кнопка закрытия. , когда я нажимаю кнопку «Закрыть» и собираюсь удалить эту строку, я получил эту ошибку. – Deviser

+0

Боюсь, нам понадобится больше информации. По крайней мере, нам нужно будет увидеть еще кое-что из вашего кода. * Если мы не можем воспроизвести переполнение стека, мы не сможем вам помочь. * –

ответ

1

Перед

para.Inlines.Remove(inlineToRemove); 

набор

(inlineToRemove.Child as TokenItem).Content = null; 

Я выигрыш, как т его, но он работает для меня