2016-10-10 7 views
-4

Ich habe ein Formular mit nur 2 Textfelder und eine Schaltfläche erstellt. In der ersten gebe ich eine Temperatur in Fahrenheit ein und wenn ich den Knopf "Convert" drücke, berechnet das Programm und setzt die Temperatur in Celsius in die andere TextBox. Es funktioniert gut.So verwenden Sie Ereignishandler in C#

Jetzt möchte ich, dass das Programm die zweite TextBox löscht, wenn ich mit der Eingabe der ersten TextBox beginne. Im Folgenden zeige ich nur einen Teil des Codes, der nicht funktioniert hat. Kann mir jemand helfen?

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
namespace Conv_Temp 
{ 
    public partial class Frm_Principal : Form 
    { 
     public Frm_Principal() 
     { 
      InitializeComponent(); 
     } 

     public event EventHandler Leave; 

     private void Tb_Temp_Leave(object sender, EventArgs e) 
     { 
      MessageBox.Show("Leaving TB Tb_Temp"); 
      Tb_Result.Text=""; 
     } 

    } 
} 
+0

Fügen Sie einen Handler zum 'KeyPressed'- oder' KeyDown'-Ereignis des Textfelds hinzu. –

+1

warum versuchen Sie nicht, doppelklicken Sie auf das 'Enter' Ereignis der ersten Box, dann von dort können Sie eine einfache Überprüfung, um zu sehen, ob die zweite TextBox.Length> 0, dann löschen Sie das Textfeld der zweiten und fahren Sie fort. Was scheint das Problem zu sein ... das ist nicht so schwer – MethodMan

+0

Mögliches Duplikat von [Verständnis von Ereignissen und Ereignishandlern in C#] (http://StackOverflow.com/Questions/803242/understanding-Events-and-Event-Handlers -in-c-sharp) – Dante

Antwort

1

Ich denke, Sie sind fast da.

Versuchen Sie, dies unter InitializeComponent();

this.Tb_Temp.TextChanged + = neuer System.EventHandler (this.Tb_Temp_Leave);

+0

Rajput. Danke für deine Absaugung. Ich denke, mein Code ist jetzt besser. – Ismael

+0

Nathan. Ihre Einnahme hat gut funktioniert. Danke vielmals. :-) – Ismael

+0

@Ismael Sie sollten auf das kleine Häkchen neben einer Antwort klicken, wenn Sie es verwenden, um Ihr Problem zu lösen. Es gibt demjenigen, der die Antwort geschrieben hat, Reputationspunkte, Anreize für weitere Beiträge und hilft den Leuten zu wissen, ob Ihr Problem gelöst wurde oder nicht, ohne dass Sie alle Kommentare durchlesen müssen. – Lodestone6

0

Fügen Sie in Ihrem Formular-Designer-Code einen neuen Ereignishandler hinzu.

this.textBox1.TextChanged += new System.EventHandler(this.ModifyTextBox1);

und implementieren dieses Ereignis in oben form.cs Datei (Form_Principal)

private void ModifyTextBox1(object sender, EventArgs e) { textBox2.Text = String.Empty; }

Bitte folgen gute Konvention zum Schreiben Codes ist dies nur eine Demo.

Verwandte Themen