Кто-нибудь расширил элемент управления .NET RichBextBox, чтобы иметь возможность выбирать текст с помощью «выбора блока»? Если да, не могли бы вы поделиться своим кодом?
Выбор текстового блока C# RichTextBox
comment
Уточнение выбора блока в вашей ситуации может дать лучший ответ.
- person Brad Bruce   schedule 14.07.2009
comment
OK. В настоящее время, когда вы выбираете текст с помощью мыши, он выделяет текст построчно. В блочном режиме вы сможете выбирать текст по столбцу... как если бы вы выбирали прямоугольник текста из элемента управления.
- person Lenard   schedule 14.07.2009
comment
Но RichTextBox может иметь разные шрифты разных размеров по всему текстовому файлу. Если вы выбираете столбцы 3-10 в строке 1, что следует выбрать в строке 2? Колонки 3-10? Или столбцы, которые совпадают с X, Y, шириной столбцов 3-10 из строки 1? Что, если половина символа находится в этой границе? Выбирается ли он? Это непростая проблема в элементе управления RichTextBox.
- person scwagner   schedule 14.07.2009
comment
Scwagner, Точка взята. Я больше думал с точки зрения символа = столбца. В моем случае я использую шрифт с фиксированным шагом и одинаковым размером шрифта во всем документе. Конечно, если вы измените размер шрифта в некоторых местах, он не будет выглядеть как идеальный прямоугольник при выделении текста, но в моем senario такого никогда не будет.
- person Lenard   schedule 14.07.2009
comment
Привет, Ленард, я нашел твой пост, когда искал ту же возможность. Вы нашли решение? Спасибо, Боб
- person   schedule 17.10.2009
comment
Нет, я этого не сделал. Я решил пока воздержаться от этой возможности. Я могу посмотреть на то, что предложил kek444, но у меня нет времени (или желания) заниматься этим самому. Тем не менее, если я найду что-то в будущем, я поделюсь этим здесь.
- person Lenard   schedule 21.10.2009
Ответы (1)
Насколько мне известно, единственный способ сделать это — использовать SendMessage из API, используя EM_CHARFROMPOS.
Вам нужно будет выполнить поиск/отслеживание границ прямоугольника и поэкспериментировать, чтобы найти эффективное решение, но это будут основы.
person
Kenan E. K.
schedule
13.07.2009