RichTextBox и контекстное меню

Да это вопрос о лени. За все время никогда не парился переписать логику менюшки. Там на 10 строк кода. А вот вашу тему почитал и решил погуглить. А там вагон и маленькая телега всяких компонентов на любой вкус. Что вам мешало гуглить перед распросами?
Ну вот я погуглил и скинул вам рабочий класс расширения. Пользуйтесь.

Это называется профдеформаця. Если сравнивать время когда информация и знания добывались курением оригинальных мануалов и пересказыванием чужих наработок и нынешнее время когда любая информация доступна по одному лишь клику мыши … нежелание некоторых пользоваться общедоступными информационными ресурсами немного выводит … все просят разжевать и в рот положить.

Так полно уже оберток. Гугл миллиард решений предлагает. Одно из них скинул выше.

На то время это был единственный рабочий вариант. Затем появились новые технологии и переделывать старые контролы стало нерационально. Ну или как то так.

Во внутренних свойствах. Почти нереально переопределить логику работы контрола в производных классах. Костыли возникают почти регулярно при малейшем изменении стандартной логики обработки.
Сейчас есть рабочие контролы для отображения форматированного текста. И может поэтому никто и не парится над расширением стандартного компонента. Все ползуют более навороченные элементы которые свободны и лишены недостатков.

Ну с этим согласен :man_shrugging:

Ну тогда не удивлятесь, что некоторые не хотят/не умеют искать нужную информацию :man_shrugging:

Но ведь у Борланда это как-то получилось (TMemo называется) и до сих пор работает. Почему сами создатели WinAPI такой простой мелочи сделать не смогли?

У меня психоблок на использование сторонних компонентов. Особенно такой элементарной хрени, как поле для ввода текста. Ради этого тянуть сторонний компонент? :dizzy_face:
А что если разработчик просто забьёт на обновление и т.д. ?

Ох… ну жесть пример. Эта контора остановилась в развитии уже двести лет назад. Они вообще ничего толкового с тех пор и не сделали. Десятилетиями перепродают один и тот же продукт в новой упаковке…

Тяжко вам придется.

Это не поле ввода а элемент для визуализации форматированного текста. Со своим языком и правилами. Если вам нужно просто текст то берите текстбокс и там будет ваше меню по умолчанию.

У вас основная задача меню чтоли или что?? Сторонний компонент для вывода структурированного текста, с новыми особенностями и более удобной разметкой. С какими то более удобными функциями обработки кликов или еще чего.

Ну майкрософт же забила на формсы и ничего, вы до сих пор пользуетесь. ))
Да и обновление это вид наркотика без которого нельзя жить что ли?? Если есть нормальная либа и она удовлетворяет всем потребностям приложения и пользователя то зачем ее обновлять?

При чём тут дата остановки? Вы же поняли, что я говорю про Delphi и её TMemo, которое до сих пор работает и меню там не проблема. Или не поняли? :dizzy_face: Если поняли, то какая разница, кто её сейчас релизит?

Зачем вы так? Вы же поняли.

Просто текст вставить стандартным способом. Почему этого стандартного способа за 20 лет не появилось в стандартном наборе? Это уже, скорее, риторический вопрос. А то опять подумаете, что наезд.

Я про обновление сторонних компонентов. Если их, вдруг, резко перестанут обновлять под новый C#, тогда что?

Так там не RichEdit внутри, а скорее всего то же, что у винформс текстбокса.
В RichEdit меню тоже нет и у Борланда: Context menu in TRichEdit ? - delphi

Про доработки речь скорее о другом была: если вам понадобится поменять что-то в том, как отображается контрол винформс/дельфи, например, рамку какую-нибудь нарисовать, плейсхолдер в поле ввода добавить, то буднт дико сложно и ненадежно, придется всё перерисовывать самому.

Так и винформс могут перестать.

Да пофиг, как оно называется и что внутри. Главное, что сразу есть минимально необходимый функционал без необходимости что-то допиливать вручную. И не важно, насколько это просто или сложно. Простой, а тем более стандартный, функционал должен быть уже сразу. Тем более, если 20 лет прошло, а у конкурентов сразу был.

Ну это уже другой вопрос. У WinForms есть аналог (WPF, вроде). То есть, есть на что переходить.
А у сторонних компонентов, как выяснилось, стандартных аналогов может и не быть. То есть, если что, то заменить будет нечем.

Дык это разные контролы для разных задач. Мемо это


Не было и видимо до сих пор нету в VCL. :arrow_down:

Как не было? :dizzy_face: A TMemo с его стандартной менюшкой это что? :thinking:
Это ведь наоборот в C# у RichTextBox своей менюшки нет.
И не важно, что внутри они разные. Я не про это

Так я ж говорю, аналог мемо это текстбокс в винформс.

А в Rich и там, и там нет меню.

Очень непривычно использовать многострочный edit. Не могу привыкнуть, что уже 2021 и всё давно устарело :man_shrugging:

Кстати, настоящая лень это писать Action вместо делегатов. Это аж на одну строчку и пару слов меньше :slightly_smiling_face:

Так и не понял чем вас так заводят обновления?? Для вас принципиально чтобы было новое или чтобы было рабочее?

Серьезно?? Нечем заменить?? Ну даже если такое и случится обычно берут и пишут свой компонент с необходимым функционалом. Очень часто приходится так делать даже если и есть какой то готовый аналог. Потому что в либу могут запихать всего что только можно и либа начинает весить 200 гигов. Поэтому разработка своих компонентов это не костыль а вполне человеческая возможность получить то что нужно в конкретном случае.

Непривычно использовать текстовый компонент для ввода и редактирования простого текста??? Математические методы тоже например со времен архимеда существуют. И нормально все пользуются и все работает. Да множество в этом мире создано древними и до сих пор успешно используется.
Вам для начала нужно определится с задачей которую вы решаете и потенциальным пользователем.
Если вам просто надо ввести логин и пароль в поля то тут ричбокс не нужен вообще. От слова совсем. Достаточно как вы говорите устаревшего текстбокса даже без мультилайн.
А если нужен форматированный текст да еще с какими нибудь плюшками то вот есть либа

Хотя… наверное вам она не подойдет. Она же 15 года. А вам нужно только максимально свежее, а не рабочее. )))

не совсем понятно что вы имеете в виду, но Action это тоже делегат. Если вы про лямбды то очевидно же что их придумали для сокращения и упрощения кода. Одну строчку прочитать легче чем несколько. В больших проектах заметно упрощает восприятие.

Ну если так, то, наверное, сторонние компоненты 2008 года работают в студии 2019 года.

Тогда получается, что стандартные компоненты вообще нафиг не нужны, если можно скачать сторонний или написать свой.

Еще раз говорю, все зависит от поставленной задачи и требуемого функционала.
Вообще сам ричтекст уже не так актуален видимо. На смену ему пришел html. Вот и контрол уже готовый есть. Наверное ест и рич и хтмл. Еще обещают что жабу поддерживает.

:thinking: Это вы так меня троллите или правда не понимаете, что я имел ввиду, говоря про обновления?
Если это троллинг, то я заценил.

А чего б им не работать? Винформс 100500 лет почти не меняется, да и вообще изменения ломающие совместимость стараются не вносить в язык, .NET и т.п.

Проблемы вроде могут быть если перейти на .NET Core/.NET 5 (Непонятки с .Net 5.0), но обычно в этом нет необходимости и обычный .NET Framework наверняка еще кучу лет будут поддерживать.
Ну и если компонент опенсорс, то всё решаемо.

Ну конечно мне так и не понятно почему вопрос обновления такой прям неимоверно важный. Пользователи в массе своей это ленивый бездельники. Им очень сложно переучиваться. И если есть приложение пусть костыльное но рабочее то они на 99% предпочтут остаться на нем и ничего не трогать чем регулярно получать новые фичи.
Да и если у вас крупная сеть организаций то эти фичи превращаются просто в кошмарный ад. Для примера того как делать не надо можно взять 1с. Выпустили обнову и положили всю сеть магазинов. Потому что какой то сверхумный разраб решил поменять названия половины ключевых методов на названия “лучше отражающие суть методов”.

Это всегда так было и будет. Винда приучила.

Правильно. Не надо улучшать API и архитектуру в целом. Главное тащить через десятилетия обратную совместимость.

А как вы себе представляете добавление новых фич и улучшение старых без изменения базовых классов? :thinking:

Без нее винда была бы намного менее популярной )

Смотря что за фичи. Обычно можно ж просто добавить новое не трогая старое.

Например, при обновлении винды всегда что-нибудь ломается. Хотя, ничего кардинально нового уже давно не добавляется. Возможно, некорректный пример.

Ломаются обычно разве что драйверы и сильно системное ПО типа антивирусов использующее что-то не документированное (или неправильно).

Ну и новые баги :spinningparrot: