Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/29: Рейтинг темы: голосов - 29, средняя оценка - 4.90
0 / 0 / 0
Регистрация: 05.12.2017
Сообщений: 8
1

Перенос строки в TextBox каждые 15 символов

05.12.2017, 14:33. Показов 5441. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет! Пишу для курсовой программу и нужно чтобы каждые 15 символов вылезал бокс с сообщением - и потом переносилось строка на следующую, вот что у меня получилось :

C#
1
2
3
4
5
6
7
8
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            if (textBox1.Text.Length == 15) //Если текстбокс длинна = 15           
            {
                MessageBox.Show("-"); //покажи сообщение - 
                textBox1.Text += Environment.NewLine; 
            }
        }
Почему то Environment.NewLine переносит на начало строки, а не на след.
и надо это дело как то зациклить.
( Я искал информацию и на Англо-язычных форумах и на русских но нужную инф. я не нашел )
Всем спасибо! ( простите за грам. ошибки, давно по Русски не писал ).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.12.2017, 14:33
Ответы с готовыми решениями:

Перенос строки в TextBox
Доброго времени суток. Пытаюсь на C# написать небольшую программку с диалогом, но шарп раньше...

Перенос строки в textbox
всем доброго времени суток, проблема вот в чем: for (i = 0; i <= 10; i++) { ...

Перенос строки в TextBox
Только начал изучать (после vb), и столкнулся с вопросом... В vb для "Enter'a в TextBox" был...

перенос строки в textBox - \n
Всем привет!!!!! Для вывода информации пользователю использую textBox, с включенным мультилайн ...

15
8940 / 4852 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
05.12.2017, 15:50 2
Цитата Сообщение от Necro98 Посмотреть сообщение
давно по Русски не писал
можно писать по-английски. Не совсем понятно, что ты хочешь получить
0
Эксперт .NET
17685 / 12871 / 3365
Регистрация: 17.09.2011
Сообщений: 21,136
05.12.2017, 16:02 3
C#
1
if (textBox1.Text.Length > 0 && textBox1.Text.Length % 15 == 0)
Предполагается, что в текстбокс не будут вставлять копипасту.
1
0 / 0 / 0
Регистрация: 05.12.2017
Сообщений: 8
05.12.2017, 16:06  [ТС] 4
Переформулирую вопрос: 1) Как сделать так чтобы после выполнения
C#
1
MessageBox.Show("-")
автоматически менялась строка в textBox1.
Потому что
C#
1
textBox1.Text += Environment.NewLine;
переносит на начало уде существующей строки, а мне надо на нижнюю.
2) Как зациклить, чтобы каждый раз, код повторялся. ps: после ответа koloroturа этот вопрос убрался.
0
8940 / 4852 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
05.12.2017, 16:11 5
Цитата Сообщение от Necro98 Посмотреть сообщение
автоматически менялась строка в textBox1.
Что это значит?
0
0 / 0 / 0
Регистрация: 05.12.2017
Сообщений: 8
05.12.2017, 16:18  [ТС] 6
Надо чтобы она начиналась со следующей строки,
потому что если использывать Environment.NewLine, переносит на начало уже существующей строки.
Надо чтобы после появления
C#
1
MessageBox.Show("-");
курсор переходил туда где красная точка на картинке.
( Будто нажали Enter )
ну в низ вообщем.
Миниатюры
Перенос строки в TextBox каждые 15 символов  
0
134 / 129 / 59
Регистрация: 16.06.2013
Сообщений: 523
05.12.2017, 17:09 7
C#
1
textBox1.Text += "\r\n";
0
0 / 0 / 0
Регистрация: 05.12.2017
Сообщений: 8
05.12.2017, 17:14  [ТС] 8
Я так уже пробывал, но к сожелению он меня на одну и тоже переносит, даже не знаю что делать, может поставить button 1 который будет автоматически нажимать на enter. Но это не выход, хотелось бы без этого.
0
134 / 129 / 59
Регистрация: 16.06.2013
Сообщений: 523
05.12.2017, 17:28 9
C#
1
2
            textBox1.Text += "\r\n"; //Добавляем перенос строки к тексту
            textBox1.Select(textBox1.Text.Length, 0); //Переносим курсор на конец текста
2
0 / 0 / 0
Регистрация: 05.12.2017
Сообщений: 8
05.12.2017, 17:29  [ТС] 10
Вы гений, спасибо вам большое! + от меня.
Ах послед. проблема:
C#
1
if (textBox1.Text.Length > 0 && textBox1.Text.Length % 15 == 0) //Если текст текстБокса длинна 0 или 15 то
Проблема в том что почему то при переносе строки Message.Box срабатывает быстрее, видимо это из за того что от считает что перенос строки это нажатые клавиши, есть способ это исправить?
Вот весь код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace Cтрока
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            if (textBox1.Text.Length > 0 && textBox1.Text.Length % 15 == 0) //Если текст текстБокса длинна 0 или 15 то          
            {
                MessageBox.Show("-"); //покажет сообщение.
                textBox1.Text += "\r\n";
                textBox1.Select(textBox1.Text.Length, 0);
            }
        }
    }
}
0
134 / 129 / 59
Регистрация: 16.06.2013
Сообщений: 523
05.12.2017, 17:30 11
Necro98, не за что. Всегда рад помочь.
0
Эксперт .NET
17685 / 12871 / 3365
Регистрация: 17.09.2011
Сообщений: 21,136
05.12.2017, 18:36 12
Цитата Сообщение от Necro98 Посмотреть сообщение
при переносе строки Message.Box срабатывает быстрее
Потому что его вызов идет перед добавлением новой строки.
Передвиньте его на две строки ниже.
1
0 / 0 / 0
Регистрация: 05.12.2017
Сообщений: 8
05.12.2017, 18:49  [ТС] 13
Почему то он все равно это делает, всегда 2 символа отсутсвуют пред появлением MessageBox.
0
0 / 0 / 0
Регистрация: 05.12.2017
Сообщений: 8
26.12.2017, 06:44  [ТС] 14
Всем привет!
Мне нужна помощь:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace Cтрока
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            if (textBox1.Text.Length > 0 && textBox1.Text.Length % 15 == 0) //Если текст текстБокса 1 длинна 15 то:          
            {
                textBox1.Text += Environment.NewLine; //Добавляем перенос строки к тексту.   
                textBox1.Select(textBox1.Text.Length, 0); //Переносим курсор на конец текста.
                MessageBox.Show("-"); //покажет сообщение - в окне.
            }
        }
    }
}
После каждых 15 символов, он должен выводить символ - в MessageBox и переходить на новую строку.
Но почему то после перехода на новую строку, MessageBox срабатывает на два символа раньше и я не могу понять почему.
Спасибо.
Миниатюры
Перенос строки в TextBox каждые 15 символов  
0
3560 / 2501 / 1174
Регистрация: 14.08.2016
Сообщений: 8,206
26.12.2017, 21:13 15
попробуй так
C#
1
2
3
4
5
6
7
8
9
10
private void textBox1_TextChanged(object sender, EventArgs e)
        {
            var pos = textBox1.Text.LastIndexOf("\r\n")  == -1 ? 0 : textBox1.Text.LastIndexOf("\r\n") + 2;
            if(textBox1.Text.Length > 0 && pos != textBox1.TextLength && (textBox1.Text.Length - pos) % 15 == 0) //Если текст текстБокса 1 длинна 15 то:          
            {
                textBox1.Text += "\r\n"; //Добавляем перенос строки к тексту.   
                textBox1.Select(textBox1.Text.Length, 0); //Переносим курсор на конец текста.
                MessageBox.Show("-"); //покажет сообщение - в окне.
            }
        }
0
0 / 0 / 0
Регистрация: 05.12.2017
Сообщений: 8
26.12.2017, 21:35  [ТС] 16
Все работает, спасибо тебе большое! Diamante
0
26.12.2017, 21:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.12.2017, 21:35
Помогаю со студенческими работами здесь

Реализовать перенос строки в TextBox
Здравствуйте, дали задание написать прогу для кассового аппарата. Надо информацию из нескольких...

Автоматический перенос строки в textBox при нажатии на Enter
Доброго времени суток, форумчане! Есть функция для textBox, которая при нажатии на Enter...

Вывести в TextBox последние 20 символов строки
Хотел сделать изначально так, есть строчки (около 69.) и надо из определенной строчки выбрать...

Textbox: количество символов самой длинной строки
Добрый день, как можно узнать длину (кол-во символов) самой длинной строки textbox? b = 0; for...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru