Hallo, in meiner Anwendung habe ich zwei TextBoxen und einen Button. Gebe ich in die textBox1 x Zeichen ein, betätige dann den Button, erscheint in der textBox2 der Text von textBox1. Nun möchte ich aber dass das Zeichen welches ich in die textbox1 eingebe unmittelbar nach Tastendruck (Tastatur) in der textBox2 erscheint. Wie kann ich also erkennen, ob in der textBox1 ein Zeichen eingegeben wurde und dies dann unmittelbar in der textBox2 ausgeben. Danke für Eure Hilfe Dieter
Hi indem du das entsprechende Event (TextChanged) abfängst und entsprechend behandelst. Matthias
Wenn du Microsofts Visual Studio verwendest, dann kannst du dort wo die Properties (Eigenschaften) sind umschalten, sodass du Events auswählen kannst. Dort findest du dann auch einen der sich TextChanged oder ähnlich nennt - dort dann doppelklicken und du landest in einer fix fertig vorgegebenen Funktionsdeklaration - da kommt dann dein Code rein :)
Danke, hat soweit funktioniert. Möchte an dieser Stelle noch fragen welche Bücher ihr über C# empfehlen könnt. Habe gute Kenntnisse in C, aber nur wenig in objektorientierter Programmierung und garkeine mit VC#. Danke und Gruß
Ich empfehle meist Go To C# (http://www.amazon.de/exec/obidos/ASIN/3827319323/qid%3D1145094976/302-2332517-7804053). Am sinnvolsten ist jedoch dennoch: Probieren, probieren, probieren - nur so lernt man es ... Wenn man mal was konkretes braucht, kann man immer noch jederzeit im Inet nachschlagen.
Habe nun noch eine Problem (Frage) Kurze Einführung: Mein PDA mit WM5.0 kommuniziert per Bluetooth mit meinem Laptop über Terminalprogramme. Zuerst konnte ich die Zeichen in einer textBox nur über das betätigen eines Buttons "oCom.Write(textBox1.Text);" senden. Durch den Event Handler klappt das Senden nun Zeichenweise und ohne betätigen des "send" Buttons. Nochmal danke für die Hilfe. Das Empfangen von Zeichen klappt zwar auch, muß aber immer den "receive" Button betätigen um diese vermutlich aus dem Empfangsbuffer in die textBox zu bekommen. private void button4_Click(object sender, EventArgs e)//receiveButton { textBox1.Text = oCom.ReadExisting(); } Habe auch hier versucht mit dem Event Handler zu arbeiten. --> kein Erfolg Code aus Form1.Designer.cs this.serialPort1.PortName = "COM12"; // benutzter Comport this.serialPort1.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(this.test); Code aus Form1.cs private void test(object sender, SerialDataReceivedEventArgs e) { textBox1.Text = oCom.ReadExisting(); } Wie gesagt, das klappt so nicht. Ich frage mich nun ob ich die falsche Klassen Methode verwende ? Von meinem Verständnis her, müsste doch wenn (ein) Zeichen (8Bit) empfangen wurden, ein Flag gesetzt werden. Gibt es sowas wie ein Event Handler für dieses Flag ? Wenn ja, welches Flag muß ich abfragen ? Vermutlich ist der Lösungsweg in C# anderst. Aber so würde ich auf Mikrocontroller Basis vorgehen. Ich brauche somit wieder etwas Unterstützung. Danke und Gruß
Hi auf den ersten Blick seh ich keinen Fehler. Wird deine Eventhandler überhaupt aufgerufen? Matthias
@dieter: wie Matthias schon gesagt hat, setze mal einen Breakpoint in deinen EventHandler "textBox1.Text = oCom.ReadExisting();" und schau ob er dort rein springt. Darauf achten, dass in Visual Studio auf Debug gestellt ist (oben wo du Debug/Release auswählen kannst).
nein , er greift aus einem anderen Thread auf ein Object zu, dies klappt unter Net2.0 nicht mehr.
"Klappt" schon, da Control.CheckForIllegalCrossThreadCalls nur vom Debugger gesetzt wird und nicht wenn das Programm normal gestartet wird. Zum anderen wurde bislang keine InvalidOperationException erwähnt. Falls das aber der Fall sein sollte, entweder die Daten im einem thread-sicheren Objekt zwischenspeichern (einfacher string reicht), oder eine Variante mit Invoke, BackgroundWorker etc. z.b. delegate void AppendTextDelegate(string s); textBox1.Invoke(new AppendTextDelegate(textBox1.AppendText), oCom.ReadExisting());
Hallo, und danke für die Schützenhilfe. Habe das Ding mittlerweile -für mich zufriedenstellend- am Laufen. Nun möchte ich eine Menüführung einbinden. Also ich ziehe ein "MainMenu (heist so bei WM5.0)" aus der Toolbox in die Form und kann dann einen Menue Baum realisieren. Möcht, dass sich beim Anwählen eines bestimmten Menüpunktes ein neues Fenster (Form) öffnet, welches wiederum mit Elementen aus der Toolbox befüllt werden kann. Das wird der nächste Punkt sein, den ich in Angriff nehme. Habe bereits was versucht; war aber nicht erfolgreich. Ein Buch habe ich mir auch bestellt "Charles Petzold Windows programmieren mit C#". So heist das glaube ich. War teuer genug und hoffe das taugt was. Wenn nicht läßt Ebay grüßen. Sollte ich nicht weiterkommen und kurz vor'm Verzweifeln sein, werd ich mich melden. Gruß Dieter
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.