это - как очистить textbox c#



Очистить текст в текстовом поле при нажатии (3)

Вам действительно нужен водяной знак для вашего текстового поля.

Посмотрите на этот ответ текстового поля Watermark / text TextBox в WPF, чтобы реализовать прикрепленное свойство в текстовое поле.

https://code.i-harness.com

Я хочу, чтобы текст TextBox, у которого уже есть имя продукта, автоматически исчезает, когда я нажимаю на него, и я могу ввести текстовое поле, которое я хочу в нем.

  • Имя продукта должно быть всегда, пока в текстовом поле нет текста
  • Я также хочу, чтобы, если я нажму на TextBox во второй раз, я не потеряю то, что я уже ввел.

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


Вы должны рассмотреть возможность использования стороннего элемента управления, есть много доступных элементов управления WatermarkTextbox. Я предпочитаю одно из следующих значений: http://wpftoolkit.codeplex.com/wikipage?title=WatermarkTextBox

Некоторое время назад я написал это поведение, использовал AdornerDecorator для размещения над TextBox , связал свойство IsFocused с моей ViewModel и сделал флаг ShouldShowWatermark в котором я привязал видимость AdornerDecorator .


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

сначала используйте это:

public bool txSearch = false;

то на вашем текстовом клике введите код события:

private void txtSearch_Click(object sender, EventArgs e)
{
    txSearch = true;

    if (txtSearch.Text == "Product Name")
    {
        if (txSearch == true)
        {
            txtSearch.Text = "";
        }                   
    }
}

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

private void txtSearch_Leave(object sender, EventArgs e)
{
    if (txtSearch.Text == "")  // here you can also use txtSearch.Text != "Poduct Name", but it could affect your search code possibly 
    {
        txtSearch.Text = "Product Name";  
    } 
}




textbox