c# parti Cancella il testo nella casella di testo facendo clic su di esso




eliminare testo da pdf mac (4)

Voglio che il testo del mio TextBox che ha già il nome del prodotto su di esso per sparire automaticamente quando faccio clic su di esso, e posso inserire la casella di testo che voglio in esso.

  • Il nome del prodotto deve essere sempre presente mentre non c'è testo nel TextBox
  • Voglio anche che se clicco sul TextBox per la seconda volta non perdo quello che ho già inserito.

Per favore fatemi sapere come posso farlo senza perdere i dati che ho inserito manualmente in esso e posso ottenere il testo predefinito ogni volta che non c'è nulla da me inserito nella casella di testo.


perché usare del software aggiuntivo e non usare la tua mente per codificare? ecco il codice semplice per raggiungere questo compito

prima usare questo:

public bool txSearch = false;

quindi sul tuo testo fai clic sul codice evento:

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

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

ciò cancellerà la casella di testo del campo quando fai clic sul testo, ora per riscrivere il nome del prodotto quando non c'è nulla nella tua casella di testo e lo lasci fare questo codice sull'evento che lascia la casella di testo:

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";  
    } 
}

In realtà hai bisogno di una filigrana per la tua casella di testo.

Si prega di guardare questa risposta di Watermark / suggerimento del testo TextBox in WPF per implementare una proprietà associata a una casella di testo.


Dovresti considerare l'utilizzo di un controllo di terze parti, sono disponibili molti controlli WatermarkTextbox. Preferisco quello di xceed: http://wpftoolkit.codeplex.com/wikipage?title=WatermarkTextBox

Ho scritto questo comportamento da solo tempo fa, AdornerDecorator usato un AdornerDecorator per posare sopra il TextBox , IsFocused associato la proprietà IsFocused al mio ViewModel e ho creato una flag ShouldShowWatermark in cui ho rilegato Visibility of AdornerDecorator .


Quel comportamento è noto come filigrana. Puoi:

  1. Utilizzare il controllo della casella di testo con filigrana da una libreria come il toolkit esteso WPF
  2. Implementalo da solo usando lo stile e il comportamento allegato, come dimostrato in questo post del blog
  3. Fai qualche trucco per ottenere lo stesso comportamento con un codice più semplice, ad esempio come mostrato in questo post di codeproject




textbox