Cursor in Textbox lassen (wenn WebBrowser Seite refresht)

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von ~blaze~.

    Cursor in Textbox lassen (wenn WebBrowser Seite refresht)

    Guten Abend,

    ich habe ein kleines Problem. Und zwar kann man sich das so vorstellen: Ich habe ein WebBrowser-Element welches durch einen Timer immer alle 6 Sekunden die Seite reloaded [WebBrowser1.refresh()]. Darunter habe ich eine TextBox, in der der Cursor immer bleiben soll. Da der Cursor dort immer raussprang wenn der Webbrowser aktualisierte habe ich einfach ein Textbox1.select() hinter die Stelle zum Aktualisieren gemacht.

    Das funktionierte auch. Bis dann noch mal ein Problem auftauchte. Es ist jetzt schwer zu beschreiben. Also stellt euch vor man startet die Anwendung und klickt mit der Maus einfach mal so (ohne das da irgendwas passiert) in den WebBrowser rein. Also einfach in das Feld wo der WebBrowser ist.

    Wenn man dies macht und dann wieder zurück in die TextBox geht und dann der WebBrowser aktualisiert wird, dann springt der Cursor immer wieder aus der Textbox raus.

    Weiß vielleicht jemand wie man das unterbinden kann. Am besten das der WebBrowser beim Aktualisieren gar nicht erst "selected" wird, so dass der Cursor in der TextBox bleibt.

    Ich hoffe, das ich das gut verständlich rübergebracht habe. Falls nicht fragt mich einfach nochmal. :)

    Vielen Dank schon mal. :)
    Es geht nur um eine kleine Chat-Anwendung. Das werde ich später aber noch anders machen (HTTP-Requests und so). Nur geht es mir jetzt darum erst mal dieses Problem zu beheben. Denn jedes mal wenn der Browser reloaded springt der Cursor aus der TextBox.

    Gruß. :)

    Edit by hal2000:
    - Vollzitat entfernt.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „hal2000“ ()

    Du erzählst mir, dass du ein Browsercontrol für einen Chat verwendest?
    Hätte nie gedacht, dass es etwas gibt, das so absurd ist, dass es der klassischen FTP-Chat Methode die Hand reichen kann.

    Zum 1000. mal: Chat -> TCP. Kein FTP, kein Webbrowser kein was auch immer äuch kreativen Köpfen noch einfällt. In TCP machste das so schnell und sauber und mit deiner Methode ist das immer nen unberechenbarer Gurkencode der nie richtig funktionieren wird.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.

    thefiloe schrieb:

    Du erzählst mir, dass du ein Browsercontrol für einen Chat verwendest?
    Hätte nie gedacht, dass es etwas gibt, das so absurd ist, dass es der klassischen FTP-Chat Methode die Hand reichen kann.

    Zum 1000. mal: Chat -> TCP. Kein FTP, kein Webbrowser kein was auch immer äuch kreativen Köpfen noch einfällt. In TCP machste das so schnell und sauber und mit deiner Methode ist das immer nen unberechenbarer Gurkencode der nie richtig funktionieren wird.

    Hallo,

    ist mir bewusst. Ich weiß dass das alles nichts "richtiges" ist. Ich bin auch kein richtiger VB-Net-Programmierer sondern mache das grade so nebenbei. Mir liegt da Webcoding eher. Aber das ist ja auch egal. Es geht ja nicht darum, wie ich den Chat machen soll sondern darum, wie ich dieses Problem in den Griff bekommen kann.

    Ob das ein Chat ist, ist hier nicht relevant.

    Also könntet ihr mir evtl. helfen oder nicht?
    Vielen Dank. Das habe ich gerade mal ausprobiert. Es scheint so als würde es funktionieren. Ein Problem hätte ich dann noch: gibt es auch die Möglichkeit den Focus wieder weg zu machen? TextBox1.Focus() = false funktioniert bei mir nicht.

    MFG

    Edit by hal2000:
    - Vollzitat entfernt.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „hal2000“ ()

    Doch es ist relevant. Wenn es ein Chat werden soll, dann ist TCP der einzige richtige Weg. Und wenn du ein Webprogrammierer bist, dann sollte es kein extra Programm brauchen das die Seite aktuallisiert, denn das ist crap. Entweder du aktualisierst mit von mir aus javascript die Seite selbst neu oder du machst das ordenlich in VB mit TCP. Und das ist nicht viel arbeit und dazu musst du auch kein richtiger VB-Programmierer sein. Gibt unter Tutorials genug Tutorials dafür. Ach ja... hier sind über 90% der registrierten keine richtigen VB Programmierer. Also mut und trau dich mal TCP auszuprobieren.

    Was deine Frage angeht. TextBox.Focus() ist eine Methode. Eine Methode kennzeichnet ein () mit optionalen parametern darin. Dieser kannst du keinen Wert zuweisen. Sprich TextBox.Focus() = false geht nicht.
    Am besten ist es, wenn du den Focus einem andere Element gibst. z.B. einfach Me.Focus() oder einem label usw. Siehe auch hier (google erstes ergebnis): stackoverflow.com/questions/11…m-a-textbox-in-c-winforms


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.

    thefiloe schrieb:

    Doch es ist relevant. Wenn es ein Chat werden soll, dann ist TCP der einzige richtige Weg. Und wenn du ein Webprogrammierer bist, dann sollte es kein extra Programm brauchen das die Seite aktuallisiert, denn das ist crap. Entweder du aktualisierst mit von mir aus javascript die Seite selbst neu oder du machst das ordenlich in VB mit TCP. Und das ist nicht viel arbeit und dazu musst du auch kein richtiger VB-Programmierer sein. Gibt unter Tutorials genug Tutorials dafür. Ach ja... hier sind über 90% der registrierten keine richtigen VB Programmierer. Also mut und trau dich mal TCP auszuprobieren.
    Okay, ich habe das Programm nur aus Spaß erstellt. Hatte schon immer VB installiert und gedacht: "Komm spielste mal'n bisschen rum". Und dann bin ich halt auf die Chat-Idee gekommen. Also ich wollte deswegen auch grade "nur so nebenbei" wissen, wie man das beheben kann. Weil es ist nicht geplant das ich da irgendwie noch groß weiter mache.

    Aber da hab ich wieder mal was gelernt: Das solche Chats am besten über das TCP-Protokoll realisiert werden. Werd ich mir für die Zukunft merken. Wenn ich dann irgendwann noch mal auf die Idee kommen sollte einen Chat zu coden dann guck ich mir halt mal den TCP-Kram an.

    Was deine Frage angeht. TextBox.Focus() ist eine Methode. Eine Methode
    kennzeichnet ein () mit optionalen parametern darin. Dieser kannst du
    keinen Wert zuweisen. Sprich TextBox.Focus() = false geht nicht.
    Am
    besten ist es, wenn du den Focus einem andere Element gibst. z.B.
    einfach Me.Focus() oder einem label usw. Siehe auch hier (google erstes
    ergebnis): stackoverflow.com/questions/11…m-a-textbox-in-c-winforms
    Ach Mist, ja jetzt fällt es mir auch auf. :pinch:
    Habe das mit mit Me.Focus() jetzt mal gemacht. Funktioniert aber scheinbar nicht. Problem ist, dass ich über einen Button in der Form1 ne Form2 aufrufe. Die Form2 kann ich zwar aufrufen aber dann kann ich innerhalb der Form2 nichts anklicken (zB Buttons) da ja immer noch die Textbox focusiert ist. Auch wenn ich Me.Focus() mache funktionierts nicht.

    Ist aber auch nicht tragisch. Sollte ja eh nur ein kleines Spaßprogramm werden. ;)
    Ach, von SemperVideo. Das schau ich mir auf jeden Fall später mal an.
    Vielen Dank! :)

    EDIT:
    Habe mir das Video angeschaut. Ist richtig gut. Werde ich irgendwann mal ausprobieren.
    Heute jedoch nicht mehr.

    Edit by hal2000:
    - Vollzitat entfernt.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „hal2000“ ()

    Wieso machst du bei mir jedes mal ein Vollzitat. Ein @thefiloe reicht. Außerdem ist das Sempervideo zeugs meiner Meinung nach in den meisten Fällen nicht wirklich gut. Videos halt :( -> gibt aber auch gute videos wie z.b. von microsoft.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Hi
    genau DAS ist der Grund, warum SemperVideo scheiße ist. Müssen wa' gleich mal nen Timer hernehmen, wenns keinen Button geben soll. Immerhin, ein Lob an den Autor: Er arbeitet nicht über Ftp.
    Habe ich gerade echt 5 Minuten meiner Zeit verschwendet, um ihm beim Tippen von 10 Zeilen Code zuzusehen?

    Gruß
    ~blaze~