Console in der Textbox ?

drachentor1

Grünschnabel
Hab eine frage wie es möglich ist aus einer textbox eine Virtuelle console zu machen.

bei mir sieht ja auch schon alles wie eine konsole aus, nur wenn ich jetzt zb:

c:/ (eingabe)

mache ist das auch noch kein problem.
aber wenn jetzt was falsch ist bei der eingabe und ich lösche das und komme dabei i char zu weit zurück wird auch das gelöscht.

hat wer eine idee wie ich das anstellen kann zb: c:/ nicht zu löschen ?

vielen dank im voraus

soll für ein spiel sein und versuch nun schon seit 3 monate ne lösung zu finden ohne erfolg:suspekt:
 
Hallo,

abonniere den textchanged-event und prüfe darin, ob der Text noch gültig ist. Wenn z.B. nach der Backspace-Taste nur noch "c:" im Textfeld steht, dann schreibst du eben wieder "c:/" dort hinein.

Gruß
MCoder
 
danke für den tip,

hab das jetzt mal versucht nur bekomm ich dauernd eine fehlermeldung,
nur versteh ich nicht genau warum.

hier mal der code um das mal nachvollziehn zu können :
Code:
    Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged

        Dim meineVariable As String
        Dim derWert As String

        meineVariable = "root>>>"

        'TextChanged
        If meineVariable Then
            meineVariable = False
        Else
            derWert = DirectCast(sender, TextBox).Text
        End If
        'und so änderst du den Text ohne die Variable zu ändern:
        meineVariable = True
        TextBox1.Text = "root>>>"
    End Sub

Hab ich irgendwas übersehen ?
sorry sollte es eine dumme frage sein
 
Hallo,

es wäre nicht schlecht, wenn du die Fehlermeldung auch benennen würdest.

In deinem Code ist mir nicht ganz klar, was du mit "meineVariable" bezwecken willst. Du initialisierst sie als String, verwendest sie im weiteren aber als boolsche Variable. Das geht natürlich schief.
Dein Vergleich sollte eher so aussehen:
Visual Basic:
Dim meineVariable As String
meineVariable = "root>>>"

If Not TextBox1.Text.StartsWith(meineVariable) Then
    TextBox1.Text = meineVariable
End If
Noch eine Anmerkung:
Das ist nur eine einfache Variante. Es geht noch der Fall schief, wenn auf der ersten Zeichenposition ein Zeichen gelöscht wird, weil dann der gesamte Text ersetzt wird, unabhängig davon, ob nach "root>>>" noch etwas steht.

Gruß
MCoder
 
eigentlich wird das ganze ein simples spiel dass mehr im text gehalten wird.
Es ist so wie eine hacker-simulation.
es geht auch gut voran, nur paar probleme :D

mit meine variable hab ich eigentlich vor "root>>>" so wie ein prompt zu setzen wie zb. "c:/"
in der richtigen konsole.

da ich mir aber vb.net selbst lerne (Bücher vorhanden), stosse ich immer auf ein paar probleme, die grossteils von mir schnell gelöst werden ;)

Leider findet man selten eine richtige beschreibung. Auch net frameworkbeschreibung ist nicht vollständig.

ich kann ja mal das gesammte projekt zusammenpacken und dir schicken :)
dann ist dir sicher klar was ich im genauen bezwecken will.

im kurzen zusammengefasst :

Konsole = programm platz für anweisungen
eigene befehle wie zb : dir , check, scan usw....
check wandelt die vorgegebene "webadresse" in eine ip um
scan sucht den port usw ....

weiters dann noch ein punkte system und aufträge

im genauen sollte die textbox nix anderes werden wie eine virtuelle konsole mit ein paar befehlen,

mfg
 
Auch net frameworkbeschreibung ist nicht vollständig.
Zumindest die Klassen-Referenz ist vollständig und mit zahlreichen Beispielen versehen.

Ich kann mir schon vorstellen, was du machen willst. Das Projekt brauchst du daher nicht zu verschicken; abgesehen benutze ich nur C# und kenne mich mit vb kaum aus.

Letztendlich musst du dir eine Programmlogik überlegen, die du der Textbox verpasst. Eine Textox ist relativ einfach gestrickt: Sie kann im wesentlichen nur Texte anzeigen und Texteingaben entgegennehmen. Dazu gibt es eine Reihe von Ereignissen, auf die man reagieren kann. Grundsätzlich kann man so vorgehen, dass nach jeder Eingabe eines Zeichens der nun aktuelle Inhalt der Textbox überprüft und ggf. entsprechend der eigenen Vorgaben verändert wird.

Gruß
MCoder
 
Zurück