Member 14519564 Ответов: 3

Можем ли мы создать приложение winforms, которое игнорирует новую строку charcter во вводе текстового поля и дает строку в одной строке с кнопкой?


мне нужно увидеть ввод в текстовом поле, которое показывает ввод с символами новой строки, но затем кнопку, которая нажимает и показывает данные в другом текстовом поле в одной строке, игнорируя /n

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

Я пытался обрезать, но это бесполезно, пожалуйста, помогите мне там кто-нибудь.

3 Ответов

Рейтинг:
20

OriginalGriff

Вместо того, чтобы обрезать, попробовать заменить:

newTextBox.Text = oldTextBox.Text.Replace("\n", "");


Member 14519564

использование системы;
использование системы.Коллекции.Общий;
использование системы.ComponentModel;
использование System.Data;
использование системы.Рисование;
использование System.Linq;
использование System.Text;
использование системы.Нарезание резьбы.Задачи;
использование системы.Окна.Формы;

пространство имен WindowsFormsApp59
{
общественности частичного класс form1 : форма
{
открытый form1()
{
метод InitializeComponent();
}

частный недействительными TextBox1_TextChanged(объект отправителя, EventArgs в электронной)
{
}

частный недействительными обработчика button1_click(объект отправителя, EventArgs в электронной)
{
newTextBox.Text = oldTextBox.Text.Replace("\n", "");
}
}
}

OriginalGriff

:вздыхать:

Теперь, почему вы предполагаете, что я заранее точно знаю, как называются ваши элементы управления, и что вам не нужно переименовывать держателей мест, которые я использовал соответствующим образом?

Member 14519564

частная NewTextBox_TextChanged недействительным(объект отправителя, EventArgs в электронной)
{
бросить новое исключение notimplementedexception();
}

#endregion

частная система.Окна.Формы.Текстовое поле oldTextBox;
частная система.Окна.Формы.Текстовое поле newTextBox;
частная система.Окна.Формы.Кнопка button1;
}
}

Member 14519564

отображение ошибки здесь в части дизайна
пожалуйста, скажите мне, как решить эту проблему

Member 14519564

отображение необработанного исключения

Рейтинг:
0

BillWoodruff

Вы можете сделать это с помощью одной строки кода:

1 установить многострочный, AcceptsTab, и AcceptsReturn свойства текстового поля textbox1, чтобы было правдой.

2 Установите для свойств Multiline, AcceptsTab и AcceptsReturn textBox2 значение 'false.
Примечание: это значения по умолчанию.

3 в кнопке 'Click EventHandler:

textBox2.Text = textBox1.Text;
Теперь не удивляйтесь, если, когда в textBox1 нет пробела в конце каждой строки, то в textBox2 вы получаете строки, Идущие вместе. Я бы предположил, что вы действительно не хотите потерять все указания на то, где заканчивались линии ... так что:
private Char myLineDelimiter = '|';
private bool doTrimLines = true;

private void MoveTextButton_Click(object sender, EventArgs e)
{
    StringBuilder sb = new StringBuilder();

    foreach (string line in textBox1.Lines)
    {
        sb.Append(doTrimLines ? line.Trim() : line); // see note
        sb.Append(myLineDelimiter);
    }

    textBox2.Text = sb.ToString();
}
Использование 'StringBuilder позволяет избежать избыточного потребления памяти, которое может возникнуть при манипулировании большими коллекциями строк: он используется здесь скорее по привычке, чем по необходимости.

Примечание: Вы действительно хотите обрезать пробелы в каждой строке ? Если вы не обрезаете строки, а строки имеют пустое пространство, состоящее из вкладок, эти вкладки появятся в textBox2, даже если вы установите его свойство AcceptsTab в 'false: это ошибка в текстовом поле.