2016-06-21 4 views
-1

TL; DR:einbetten Konsole in Form

Gibt es eine Möglichkeit, eine Konsole in einem Formular einzubetten, so wird es ein Teil davon?


Szenario:

Ich schreibe eine Chat-Anwendung mit client, server und database mit Windows Forms in VB.NET. Der Server sollte log all communication es with clients in einem textbox hat.


Das Problem:

so weit, dass ein Problem nicht wäre - Wenn es keine maxlength for strings ist! Ich erwarte, dass dieser Server fast nie aufhört (Okay, es gibt immer einen Punkt, an dem es das tut ... aber wir ignorieren das). Also, wenn ich für Textbox1.Text &= vbnewline & "Something" gehe, wird es irgendwann diese Länge erreichen und in eine exception jedes Mal laufen, wenn etwas protokolliert werden soll. Ich möchte auch nicht nur die ersten Zeichen der Zeichenkette entfernen.


Meine Idee für eine Lösung:

Meine Idee für eine Arbeit um: Use a console anstelle einer einfachen Textbox und embed it into the form, so dass es ein Teil davon wird. Gibt es einen einfachen Weg, das zu tun? Mit einfachen meine ich, dass ich Tausende von Codezeilen schreiben müsste, um dieses Ziel zu erreichen.

Ich bin offen für verschiedene Ideen und Möglichkeiten, dies auch zu tun.

+0

Nicht viel bringen die TL: DR am Ende Ihrer Frage ;-) –

+0

@MattWilko guten Punkt .. Ich stimme zu – Luke

+1

Es ist nicht klar, wie die Verwendung einer Konsole Ihr Problem sowieso lösen würde; oder alternativ was genau meinst du mit "Konsole"? – peterG

Antwort

1

Warum loggen Sie Ihren Chat einfach nicht in eine Datei ein (Sie könnten eine Datei pro Tag erstellen)?

Dim filename = String.Format("C:\Temp\{0:yyyy-MM-dd}-log.txt", DateTime.Now) 
    My.Computer.FileSystem.WriteAllText(filename, "line of text", True) 

Dann ist es angezeigt werden - eine ListBox verwenden und jede neue Zeile am Ende der Listbox anhängen? Bei jedem Anhängen können Sie überprüfen, wie viele Elemente sich in der Listbox befinden, und die ersten 100 entfernen, wenn Sie zum Beispiel über 1000 sind.

+0

Würde die Datei nicht irgendwann zu groß für einen Editor werden? Wenn es zu viele Zeichen in einer Datei gibt, haben die meisten Editoren große Schwierigkeiten, sie zu öffnen. – Luke

+0

Definitiv ein Weg, es zu tun. Hatte ähnliche Gedanken auch schon. Wenn ich keinen anderen Weg finde, es zu tun, werde ich es benutzen. Aber ich bin immer noch interessiert, ob es eine Möglichkeit gibt, eine Konsole in das Formular einzubetten. – Luke

+0

@Luke Sie könnten 1 Datei pro Tag haben –