Рейтинг:
6
phil.o
Технически, путем наследования TextBox
, вы можете затенить его MaxLength
недвижимость с new
ключевое слово:
public class CustomTextBox : TextBox
{
public new int MaxLength
{
get { /* ... */ }
}
}
Если вы не предоставите никакого сеттера, новое свойство будет доступно только для чтения.
Но, как заявил Пол в своем решении, это ужасная идея-пытаться запихнуть столько информации в один элемент управления.
The Magical Magikarp
Мне понравились другие ответы, но ваш прекрасно отвечает на мой вопрос :) Спасибо!
Рейтинг:
1
OriginalGriff
Вы не можете этого сделать, если только не создадите совершенно новый текстовый элемент управления, подобный элементу управления UserControl, и не разрешите am намного, намного больше стандартной длины.
Но это не очень хорошая идея, даже если бы вы могли (или вы идете на все усилия, связанные с "прокаткой своего собственного" текстового поля).
Подумайте об этом: 2 147 483 647 символов-это около 27 000 000 строк текста. Неужели вы всерьез намерены шлепнуть столько текста перед Пользователем и сказать: "правильно - вы продолжаете"? Система, вероятно, замедлится до обхода - при условии, что она не остановится полностью, - и у вашего пользователя не будет хорошего способа даже прочитать ее. Я могу получить около 110 строк текста на моем экране при удобном размере чтения, так что вы смотрите примерно на 250 000 строк текста. страницы текста в одном элементе управления, предполагая, что он заполняет экран. Как вы думаете, насколько большой будет вкладка полосы прокрутки? сколько времени потребуется пользователю, чтобы пробраться через эту кучу в поисках одной страницы или, что еще хуже, одной строки, которую он ищет?
Это глупая идея: ваши пользователи будут ненавидеть его, а также ваше приложение и вас. Сядьте и переосмыслите весь свой пользовательский интерфейс с точки зрения пользователя, а не "легко для меня кодировать" - в настоящее время он полностью сломан.
The Magical Magikarp
Ну, у меня есть опция "Найти" и "заменить", которая позволит им найти нужный текст и заменить его.. Это также позволяет им перемещаться к выбранной линии. (Который организован компанией страницы) Итак, ответ таков: - Нет?
johannesnestler
Так что реализуйте именно это. Сохраняйте "строку" - это должен быть файл. Покажите пользователю результаты поиска из файла, позвольте им заменить/перейти (возможно, получите вдохновение от функции Notepad++ "поиск и замена в нескольких файлах"). Сделайте элемент управления, чтобы показать измененные линии (что угодно). Но не загружайте весь текст в элемент управления. Только подумайте о потреблении памяти (и обо всем, что упоминал OriginalGriff). Действительно переосмыслите то, что вы хотите сделать, функция не может быть "я покажу вам сейчас миллион строк текста).
Я сделал Trace-Viewer назад, чем (полный уровень детализации приложения (backend/frontend) генерировал около 400 тысяч строк трассировки за один клик), который работал так. Но ни на секунду я не подумал: Ах, я просто загружаю все это....
The Magical Magikarp
Кроме того, не могли бы вы указать мне правильное направление для создания моего собственного совершенно нового TextBox
от А UserControl
- Спасибо :)