Как очистить textbox в c по нажатию кнопки
Перейти к содержимому

Как очистить textbox в c по нажатию кнопки

  • автор:

Как правильно очистить textBox

Всем привет, в процессе изучения C#, возник вопрос, по поводу очистки textBox с WinForms. На просторах встречаются, разные способы:

textBox.Text = null; textBox.Clear(); textBox.Text = ""; 

Какой правильнее использовать? Может есть какие-то особенности? Спасибо.
Отслеживать
28.7k 4 4 золотых знака 40 40 серебряных знаков 81 81 бронзовый знак
задан 23 фев 2019 в 8:35
87 1 1 золотой знак 2 2 серебряных знака 10 10 бронзовых знаков

Откуда этот текстбокс: WinForms, WPF, что-то ещё? | Вообще, если следовать шаблонам MVC/MVVM и т. п., то контрол должен быть привязан к модели (свойству модели данных). Следовательно, очищать нужно это свойство, а контрол (в нашем случае текстбокс), очистится сам.

23 фев 2019 в 9:25
textBox с WinForms
23 фев 2019 в 10:20

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Мое мнение — плевать как ты будешь очищать) Любым из этих способов.

но раз уж есть функция textBox.Clear(); то я бы пользовался бы ею. Как минимум — потому что короче запись и читабельнее код.

Отслеживать
ответ дан 23 фев 2019 в 12:16
Andrew Stop_RU_war_in_UA Andrew Stop_RU_war_in_UA
19.1k 6 6 золотых знаков 36 36 серебряных знаков 98 98 бронзовых знаков

Если проследить цепочку вызовов свойства Text 1, 2, 3, то мы увидим следующий код:

if (value == null)

То есть null задать этому свойству невозможно, всё равно будет присвоена пустая строка. Следовательно, способ textBox.Text = null; отпадает.

Проследив цепочку вызовов метода Clear 4, 5, видим:

public void Clear()

Внезапно, присвоение null . Мда, почему бы сразу не присваивать «» .

Вообще, используйте метод, раз уж он есть и вызов его на пару символов короче.

В современных приложениях обычно используется привязка данных. Напрямую мы не работаем с графическими контролами. Значения в них меняются опосредованно.

Пример получается громоздкий, но раз уж взялся объяснять, то доведу дело до конца.

Допустим, у нас имеется класс, описывающий человека, у которого есть имя (другие свойства добавьте сами). Чтобы экземпляры этого класса могли участвовать в двусторонней привязке данных, нужно реализовать у него интерфейс INotifyPropertyChanged.

class Person : INotifyPropertyChanged < private string _name; public string Name < get =>_name; set < if (_name != value) < _name = value; NotifyPropertyChanged(); >> > private void NotifyPropertyChanged([CallerMemberName] string propertyName = "") < PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); >public event PropertyChangedEventHandler PropertyChanged; > 

Создадим экземпляр этого класса и прибиндим его к имеющемуся текстбоксу:

var person = new Person < Name = "Bob" >; textBox.DataBindings.Add( nameof(TextBox.Text), person, nameof(Person.Name), false, DataSourceUpdateMode.OnPropertyChanged); 

Теперь для очистки текстбокса достаточно очистить привязанное свойство:

person.Name = ""; 

Если вы будете создавать большие серьёзные приложения, то неизбежно столкнётесь с data binding и INotifyPropertyChanged, поэтому придётся их освоить.

Нужно сделать кнопку очистки полей ввода в калькуляторе (windows forms c++)

Работаю с textBox в качестве полей ввода. Могу вводить цифры с панели программы и получать результат, но после 1 действия ввод данных прекращается. Нужно чтобы я мог обнулять ячейки ввода.

private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) this->Text = «Калькулятор»;
label1->Text = «Текущая операция: «;
label2->Text = «»;
>
private: System::Void button22_Click(System::Object^ sender, System::EventArgs^ e) double x,c;
switch (label2->Text[0])
case’+’:
x = System::Convert::ToDouble(textBox1->Text)+System::Convert::ToDouble(textBox2->Text);
textBox3->Text = Convert::ToString(x);
break;
case’-‘:
x = System::Convert::ToDouble(textBox1->Text) — System::Convert::ToDouble(textBox2->Text);
textBox3->Text = Convert::ToString(x);
break;
case’*’:
x = System::Convert::ToDouble(textBox1->Text) * System::Convert::ToDouble(textBox2->Text);
textBox3->Text = Convert::ToString(x);
break;
case’/’:
x = System::Convert::ToDouble(textBox1->Text) / System::Convert::ToDouble(textBox2->Text);
textBox3->Text = Convert::ToString(x);
break;
>
>
private: System::Void button13_Click(System::Object^ sender, System::EventArgs^ e) label2->Text = «+»;
n = true;
>
.

Лучший ответ
Очищай textbox и всё, в чём проблема?
textBox1->Clear();
textBox2->Clear();
Остальные ответы

Я так понял что ты в калькулятор решил вписывать значения с клавиатуры а не по нажатию виртуальных кнопок — которые должны быть расположены на форме калькулятора !

И не совсем понятно что у тебя не получаеться конкретно !

ПавелМастер (2373) 8 лет назад

наоборот
ввод будет производиться через кнопки в программе
поставил ReadOnly в настройках textBox, чтобы при запуске исключить ввод букв

Очистить запись в TextBox

Author24 — интернет-сервис помощи студентам

Очистить TextBox
private void button1_Click(object sender, EventArgs e) < enterNumber.Clear();.

Очистить несколько textbox
Подскажите пожалуйста как по нажатию кнопки сбросить (очистить) введенный текст из нескольких.

Необходимо очистить textbox перед вводом
Существует такой код который обеспечивает ввод в текст бокс автоматически сформированную строку.

Как очистить множество TextBox на форме
Добрый день! Я мало знаком с C# поэтому не судите строго, я пишу первую программу и столкнулся с.

85 / 77 / 13
Регистрация: 03.09.2009
Сообщений: 346
textbox.Text = string.empty;
Life Builder
532 / 496 / 374
Регистрация: 12.01.2011
Сообщений: 1,754

ЦитатаСообщение от denger8088 Посмотреть сообщение

Как очистить зщапись в textbox

textBox1.Text = ""; textBox1.Clear();

мастер топоров
916 / 741 / 101
Регистрация: 16.08.2009
Сообщений: 1,476
кстати, господа, вопрос на засыпку:
в чем разница между строками

string st1 = string.Empty; string st2 = "";

220 / 143 / 35
Регистрация: 25.06.2010
Сообщений: 383

Не знаю важно или нет, но вот вычитал на просторах необъятного:
Оказывается, что даже при использовании в конструкции if, сравнение со string.Empty работает в два раза медленнее, чем с константной пустой строкой «»:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
=== string.Empty benchmarked code === if (string.Empty == null) { throw new Exception(); } === Constant string benchmarked code === if ("" == null) { throw new Exception(); } === Benchmark results === Second loop was completely compiled out before runtime. 1000000000 iterations. string.Empty loop: 637 ms "" loop: 319 ms [faster]

Регистрация: 31.12.2009
Сообщений: 349
Лучше использовать String.IsNullOrEmpty или просто по длине самый быстрый способ.
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Как очистить TextBox для ввода массива?
Подскажите пожалуйста метод, чтобы после нажатия кнопки стиралось все, что было написано в TextBox.

Как очистить всех textBox нажав на одну кнопку?
Есть 12 текстбоксов и нужно всех их очистить по нажатию на одну кнопку. Как это реализовать? Не.

Как правильно очистить textBox после выполнения действий?
Вот я знаю 3 варианта того, как очистить textBox, но не очень понимаю, чем они отличаются: .

Очистить TextBox при выборе определенного элемента в ComboBox
Есть combobox и 3 textboxа. В combobox через свойства в Items записал 1 2 3. Нужно чтобы при выборе.

Или воспользуйтесь поиском по форуму:

как очистить input js

Как видно из кода, принцип довольно прост и заключается в присвоении пустой строки свойству value этого элемента.

Например, мы хотим очистить поле ввода для поиска музыки. Тогда наш код будет выглядеть так:

 type="text" id="searchInput" placeholder="Введите название песни или исполнителя" />  onclick="clearSearch()">Очистить function clearSearch()  document.getElementById('searchInput').value = ''; >  

При нажатии на кнопку «Очистить» значение поля ввода будет заменено на пустую строку, тем самым произойдет очистка.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *