Come posso riempire una casella di testo vuota con testo predefinito?

Come posso riempire una casella di testo con del testo se è vuota? Sto usando VB.NET.

Probabilmente vorrai gestire l’evento TextChanged e impostare del testo predefinito se la casella di testo è vuota quando l’evento è triggersto.

Non ho un esempio VB.NET, ma il seguente C # dovrebbe essere troppo difficile da capire:

 public Form1() { this.InitializeComponent(); textBox1.Tag = "Default text"; textBox1.Text = (string)textBox1.Tag; textBox1.TextChanged += new EventHandler(OnTextChanged); } void OnTextChanged(object sender, EventArgs e) { var textbox = (TextBox)sender; if (string.IsNullOrEmpty(textbox.Text)) { textbox.Text = (string)textbox.Tag; } } 

E il gestore di eventi può essere riutilizzato per diverse caselle di testo.

EDIT: Ecco praticamente lo stesso in VB.NET

 Sub New() ' This call is required by the designer. InitializeComponent() TextBox1.Tag = "Default text" ' This can be set with the designer TextBox1.Text = CStr(TextBox1.Tag) End Sub Private Sub OnTextBoxTextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged Dim textbox As TextBox = DirectCast(sender, TextBox) If String.IsNullOrEmpty(textbox.Text) Then textbox.Text = CStr(textbox.Tag) textbox.SelectAll() End If End Sub 

Naturalmente, puoi anche ottenere un comportamento simile usando la funzionalità nativa di Windows, ma alcune righe di codice gestito ti daranno praticamente tutto ciò che ti serve anche se non vuoi usare Win32.

gestione del testo predefinita in una casella di testo

 Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load TextBox1.Text = "Default Text" ' initialize the text box End Sub 

cancella il testo quando il cursore si trova nella casella di testo

 Private Sub TextBox1_GotFocus(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1_GotFocus TextBox1.Text = "" ' clear the text box for typing End Sub 

Se la casella di testo rimane vuota dopo la modifica dei dati, viene nuovamente visualizzato il testo predefinito

 Private Sub TextBox1_LostFocus(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1_LostFocus TextBox1.Text = "" ' clear the text box for typing End Sub 

Stai cercando qualcosa di simile?

 If Textbox.Text = string.Empty Then TextBox.Text = "Default Text" End If 

Vorrei creare una class che eredita TextBox e fare due cose con esso:

  • Aggiungi la proprietà della stringa DefaultText
  • Sovrascrivi il setter del testo per impostare sempre questo DefaultText se il nuovo valore del testo è String.Empty

Suppongo che intendessi aggiungere del testo dalla pagina di aspx.

  

Anche se .NET non suggerisce questa funzione in intellitext, presumo che ti consenta di inserire qualsiasi attributo, anche personalizzato, in cui puoi manipolare i dati al suo interno. Ma fa il lavoro. e l'attributo valore viene inviato al browser, quindi, iniziare nel campo di testo.

Per TextArea (TextMode = "MultiLine"), puoi inserire tra i tag.

 Text Here will be inside the TextArea 

È come il comportamento del tag textarea html.