2016-01-23 1 views
1

Я знаю, что «изобретать колесо» возражает против такого усилия. Тем не менее, меня интересует путь DIY в основном потому, что я хочу выяснить для себя, как заставить его работать. Я читал несколько книг, и мне нужно было изучать VB.net по другой причине, поэтому я изучил это в VB (убейте двух птиц одним типом рассуждений). Однако, в Pro WPF 4.5 в VB (Apress), есть проход, который гласит:Могу ли я использовать VB.net для создания мощного приложения, которое включает в себя обширные возможности обработки текстов?

«Управление RichTextBox также предоставляет богатую модель программирования, которая предоставляет много точек расширения, так что вы можете подключить собственную логику, который позволяет использовать RichTextBox как строительный блок для вашего собственного настраиваемого текстового редактора. Единственным недостатком является скорость. WPF RichTextBox, как и большинство расширенных текстовых элементов управления, которые ему предшествовали, может быть немного вялым. Если вы необходимо хранить огромные объемы данных, использовать сложную логику для обработки нажатий клавиш или добавлять такие эффекты, как автоматическое форматирование (например, подсветка синтаксиса Visual Studio или подчеркивание наложения орфографии Word), WPF RichTextBox, вероятно, не обеспечит производительность, которую вы "(стр. 898-899).

В книге нет других указаний по этому вопросу. Из того, что я нашел в Интернете, кажется, что приложения MS Office все еще написаны на C++, и они явно не имеют этих ограничений. Являются ли проблемы производительности здесь просто функцией этого конкретного элемента управления, где я могу разработать свои собственные элементы управления WPF, которые не имеют этих ограничений, или это больше проблема, вызванная накладными расходами платформы .NET. Мне нужно изучить VB.Net в любом случае, но я не хочу тратить время на использование этого проекта, чтобы узнать его, если .Net не является хорошей средой для разработки такого приложения.

+1

Да, вы должны быть хорошо. Если вы столкнетесь с проблемами производительности, почти наверняка будет вокруг них. – Ryan

+1

Я думаю, что предупреждение о проблемах производительности связано с методом refresh() в richtextbox(). Большие объекты замедляют форму, которая постоянно освежает объект. При использовании слова microsoft только текущее представление обновляется, а остальная часть документа обновляется в фоновом режиме. – jdweng

+0

@jdweng ... Я еще не посмотрел на метод refresh(), но просто увидел ваш ответ. Однако я думаю, что я понимаю, что вы имеете в виду ... что все члены в richtextbox() повторяются и обновляются каждый раз, когда происходит изменение, а не обновляется только элемент, который был изменен (например, параграф, пробег и т. Д.), , Вам неизвестно, является ли метод refresh() переопределяемым? Возможно, я могу просто расширить richtextbox() и изменить логику этого метода. –

ответ

1

Создайте свой собственный RichTextBox, который наследуется стандартной RichTextBox

Public Class MyRichTextBox 
    Inherits RichTextBox 

    Public Shadows Sub Refresh() 


    End Sub 



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