Member 13572158 Ответов: 2

Как разбить строки в текстовых полях в C# при отправке на принтер


Когда я ввожу какой-то текст в текстовое поле, я хочу разбить текст на новую строку (7 символов в 1 строке) при печати.

Код приведен ниже

e.графика.DrawString(textBox24.Text, новый шрифт ("Arial", 12, FontStyle.Обычная), Кисти.Черный, новая точка(32, 260));

Что я буду делать

Что я уже пробовал:

Когда я ввожу какой-то текст в текстовое поле, я хочу разбить текст на новую строку (7 символов в 1 строке) при печати.

Код приведен ниже

e.графика.DrawString(textBox24.Text, новый шрифт ("Arial", 12, FontStyle.Обычная), Кисти.Черный, новая точка(32, 260));

Что я буду делать

2 Ответов

Рейтинг:
0

OriginalGriff

Используйте перегрузку RectangleF: Графика.Метод DrawString (Строка, Шрифт, Кисть, Прямоугольник) (System.Рисование)[^] - он будет обертывать текст так, чтобы он оставался в прямоугольнике, который вы предоставляете.

Кстати: сделайте себе одолжение и перестаньте использовать имена Visual Studio по умолчанию для всего - вы можете помнить, что "TextBox8" - это номер мобильного телефона сегодня, но когда вам придется изменить его через три недели, вы это сделаете? Используйте описательные имена - например, "tbMobileNo" - и ваш код станет легче читать, более самодокументируемым, более легким в обслуживании - и на удивление быстрее кодировать, потому что Intellisense может добраться до "tbMobile" за три нажатия клавиш, где "TextBox8" занимает размышление и 8 нажатий клавиш...


Рейтинг:
0

Richard MacCutchan

Используйте класс String и разделите его так, как вы хотите, что-то вроде:

string maintext = TextBox.Text;
int length = maintext.length;
for (int i = 0; i < maintext.length; i += 7)
{
    int sslength = 7;
    if (sslength > length)
        sslength = length;    // last section less than 7 characters
    string str = maintext.Substring(i, sslength);
// write the contents of str
    length -= 7;
}