Лучший отвечающий
Не редактируется текст в TextBox, (StringBuilder)

Вопрос
-
При написании такого кода:
private void button1_Click(object sender, EventArgs e) { StringBuilder List = new StringBuilder(); for (int i = 0; i <= 5000; i++) { List.Append(string.Format("Test String #{0}{1}", i,Environment.NewLine)); } textBox1.Text = List.ToString(); }
После заполнения textBox1 я не могу редактировать в нём текст (могу только удалять буквы/строки), причём если сделать меньше итераций (например: i <= 100), то текст редактировать можно. Есть ли этому объяснение. Как вылечить?
11 марта 2015 г. 11:06
Ответы
-
Если речь о WinForms, у элемента TextBox имеется ограничение на количество интерактивно вводимых символов (свойство MaxLength). Таким образом, пока длина текста (свойства Text) больше, чем MaxLength - редактирование невозможно.
P.S. Впрочем, В WPF тоже самое.
Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!
- Изменено kosuke904 11 марта 2015 г. 14:26 Дополнение
- Предложено в качестве ответа kosuke904 13 марта 2015 г. 6:52
- Помечено в качестве ответа YatajgaModerator 21 марта 2015 г. 13:27
11 марта 2015 г. 14:24
Все ответы
-
Если речь о WinForms, у элемента TextBox имеется ограничение на количество интерактивно вводимых символов (свойство MaxLength). Таким образом, пока длина текста (свойства Text) больше, чем MaxLength - редактирование невозможно.
P.S. Впрочем, В WPF тоже самое.
Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!
- Изменено kosuke904 11 марта 2015 г. 14:26 Дополнение
- Предложено в качестве ответа kosuke904 13 марта 2015 г. 6:52
- Помечено в качестве ответа YatajgaModerator 21 марта 2015 г. 13:27
11 марта 2015 г. 14:24 -
Сказано верно, по этому можно добавить условия по сравнения текущего обьёма List с textBox1.MaxLenght и ваш текст напечатается 1752 раз и его можно редактировать
private void button1_Click(object sender, EventArgs e) { StringBuilder List = new StringBuilder(); for (int i = 0; i <=5000; i++) { if (List.Capacity< textBox1.MaxLength) List.Append(string.Format("Test String #{0}{1}", i,Environment.NewLine)); } textBox1.Text = List.ToString(); }
11 марта 2015 г. 15:49