Hallo Leute, ich möchte eine Art Hyperterminal mit C# realisieren, also ein Terminalfenster für die serielle Kommunikation. Das wird ein Teil einer größeren Anwendung. Die Schnittstellen-Komponente läuft schon ganz gut, und als C# Neuling mit BCB-Vorkenntnissen finde ich mich generell auch ganz gut zurecht, bzw. bin sogar sehr begeistert. Aber vielleicht hat ja jemand aus der Embedded-Welt schon was fertiges. Ich mühe mich gerade mit Eingabe-Events von der TextBox-Komponente ab, vielleicht kann mir jemand auf die Sprünge helfen. Später möchte ich auch noch eine OLE-Schnittstelle zur Office-Welt einbauen, hat das schonmal jemand gemacht? Muss ja nicht in C# sein, zum Glück lässt die "babylonische Sprachverwirrung" unter (bzw. "über") .net ja merklich nach. Viele Grüße Axel
was willst du denn genau wissen ? Wichtig sind: KeyDown (Taste gedrückt) KeyUp (Tase wieder losgelassen) KeyPress (beides zusammen) TextChanged (Der Text hat sich verändert - wie auch immer ;) ) Alternativ kannst du das Ganze auch subclassen, aber dazu wird dann wieder die Win32API benötigt. Die Frage die sich stellt, ist die: Was genau willst du machen ;) Bzgl. Office Welt: Mit dem RichtTextControl stehen dir Formatierungsmöglichkeiten für Text offen .. Das ist schonmal etwas .. Aber auch hier die Frage: Einsatzzweck ?
Hallo somnaticuser, 1)Text in ein Fenster eintippen, bei Return über die serielle rausjagen. 2)Empfangene Zeichen in einem anderen Fenster darstellen, neue Zeile, wenn line feed kam. 3)Vorgefertigte Kommandos aus anderen Textboxen per Klick rausjagen. 4) DDE oder OLE Schnittstelle, um "live" aus Word/Excel Strings auszutauschen Hab mich jetzt so einigermaßen durchgewurschtelt. Ich dachte es gäbe sowas wie AppendLine, sollte man meinen. Hab lange gebraucht um festzustellen, dass man \r\n und Append Text braucht. Mit dem on enter Event hat irgendwie nicht so geklappt, hab mir erstmal mit textBox.Lines.Length beholfen, um eine neue Zeile zu erkennen. Bleibt noch die Sache mit dem DDE/OLE o-.ä. -Server. Ich hab sowas mal bei einem PIC-Debugger gesehen, da brauchte man nur eine Zeile in eine Excel-Tabelle einzufügen, und schon hatte man "lebendige" Daten, echt cool. Ich hab da bisher immer mit csv Dateien rumgepfuscht, das geht ja nicht so weiter. Einfach mal eine simple Tabelle/Kurve in Excel per DDE verknüpfen, das sollte doch eigentlich nicht so schwer sein. Vielen Dank für sachdienlich Hinweise Axel private void textBox1_TextChanged ( object sender, EventArgs e ){ int l; string outbuf; l = outbuf = " "; if ( l >= 2 ){ outbuf = textBox1.Lines[ l - 2 ]; textBox2.Text = Convert.ToString ( l ) + " " + outbuf;//nur z. test } }
ad 1) * Eine TextBox auf die Form ziehen * Im Property Fenster auf Events umschalten -> Dort KeyPress auswählen * Den folgenden Code eingeben: private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) { if (e.KeyChar == (char)13) { // Hier der Code zum rausjagen textBox1.Text = ""; } } ad 2) Angenommen du hast die Zeichen in einer Variable namens "buff" vom Typ string gespeichert. Du kannst dann ganz einfach: string buff; string[] allLines = buff.Split('\n'); alternativ kannst du anstatt dem Zeichen \n auch ein anderes nehmen, musst halt schauen was du geliefert bekommst. allLines enthält dann alle Zeilen "untereinander" ad 3) Du könntest doch beispielsweise eine ComboBox nehmen. Daneben noch einen Button platzieren und fertig. Beispiel: Die ComboBox kannst du über die Item Property (Eigenschaft) gleich mal füttern (schon während der Design - Zeit). Als Event Handler für den button reicht dann ein einfaches: JageRaus(comboBox1.SelectedText); Wenn du erklärende Worte in der ComboBox willst, kannst du auch zwei Arrays (oder besser ArrayLists) anlegen. Eines in der ComboBox (Items) mit den Worten. Eines mit den Befehlen irgendwo im Programm. Du nimmst dann den ausgewählten Index der ComboBox, aber den Inhalt aus dem Array (mit demselben Index). Kann dir ja eine kurze BeispielApp schicken wenn du willst. ad 4) Ich kann dir mal nachschauen, aber bist du sicher dass das nicht über VBA oder ähnliches gelöst wurde.
aha! aha! Danke für die Tipps! BeispielApp ist eigentlich nicht nötig, die Sache mit der Office-Schnittstelle wäre wichtiger. Kann sein, dass das über VBA gelöst wurde, nach der Installation schien halt irgendwo ein DDE-Server zu laufen. Habe auch mal gesehen, wie Leute so ein Programm mit dem BCB realisiert haben. DDE geht unter C# nicht mehr, aber irgendwie wird es doch sowas named pipes o.ä. geben. Ein Excel/Word Makro mitt Buttons wäre auch akzeptabel.
hmm . .also bzgl. C# + Excel könnte dir evtl. das da weiterhelfen: http://www.codeproject.com/csharp/csharp_excel.asp
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.