Zwei spezifische Fragen zur Textbox

  • VB.NET

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von V.I.R.U.S.

    Zwei spezifische Fragen zur Textbox

    Abend Leute!

    Ich habe zwei spezifische Fragen zur Textbox:
    1. Wie deaktiviere ich den IBeam - Curser (= blinkender Balkencursor) für dieses Steuerelement (sodass er nicht mehr angezeigt wird)?
    2. Was kann ich tun das die Textbox nicht mehr fokussierbar ist.
    Danke im Vorraus ;)
    Frage 1: vbarchiv.net/forum/read.php?id=22&t=36797&i=36797&v=f
    Frage 2 müsstest bisschen genauer formulieren. reicht sonst nicht readonly auf true setzen?

    lg

    EDIT:
    Unschöne Variante:
    Mach dir ein hidden steuerelement (zB Textbox2) und hau code in Textbox1

    VB.NET-Quellcode

    1. Private Sub TextBox1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.GotFocus
    2. TextBox2.Focus()
    3. End Sub

    nicht die schönste methode aber sollte funktionieren
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten
    Was genau möchtest du erreichen ?

    Das man nichts mehr hineinschreiben kann ?
    Oder das man etwas hineinschreiben kann, aber den Cursor nicht sieht ?
    Wenn man die Tb nicht mehr fokussieren kann, kann man ja auch nichts hineinschreiben oder einfügen.

    Daher vll als kleiner Trick:

    VB.NET-Quellcode

    1. TbYours.Enabled = False
    2. TbYours.BackColor = Color.White
    Das ist meine Signatur und sie wird wunderbar sein!
    Ich möchte quasie erreichen das sich die Textbox verhält wie ein Lable bloß eben mit klar definierter Größe (was ja beim Lable noch nicht das problem ist, aber mit zentrierter Schrift.

    Den Wert von Textbox.Enabled auf False zu setzten ist jedenfalls sehr unschön, sie wäre dann zwar genau so wie ich sie brauche , jedoch ist der Text dann Grau und er sollte nach Möglichkeit Schwarz bleiben.
    also so wie ich dich verstehe willst du eine Textbox die wie ein Label aussieht...
    also ich würde dir (nciht)empfehlen ein Label zu machen
    und dann einen neuen String

    nun das
    Form1.keydown event()
    If me.keydown.keys.a then
    string=string+"a"
    Label1.text = string
    end Sub

    hört sich kacke an ist es aber auch mehr ist mir grad nicht eingefallen...
    Offensichtlich hast du mich sowieso falsch verstanden da ichs sowieso nicht mit Lables machen will/werde da das einfach zu viel Arbeit ist.
    Dann bräuchte ich für eine Box 3 Lables die ich immer per Formel auf die Mitte fixieren müsste wenn sich der Text verändert und ich will garantiert keine 3 Lables exportieren und wieder importieren da man die Infos ja auch speichern können soll.
    Deshalb hab ich ja versucht das Ganze mit dem Textbox-Steuerelement zu lösen, hab die Option Multiline aktiviert und dann hat das gepasst, allerdings stört mich ja dieser I-Beam Cursor (NICHT der Mauszeiger, das BEARBEITUNGSWERKZEUG!)sowie das Faktum das sich der Text der drin steht selektieren lässt was bei ( Enabled = False nicht der Fall wäre, aber da ist dann das Problem der grauen Schrift).
    Verwende eine RichTextBox und setze deren Property ReadOnly auf True ;)
    Wie du das mit dem selektieren machen kannst, keine Ahnung. Vllt. ein eigenes Control schreiben?!

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

    Um ehrlich zu sein, verstehe ich das Problem noch nicht ganz.
    Wenn Du ein Label mit fester Größe haben willst, dann setze die Eigenschaft AutoSize auf False

    VB.NET-Quellcode

    1. With Label1
    2. .AutoSize = False ' Automatische Größenänderung deaktivieren
    3. .Height = 100 ' Höhe des Labels definieren
    4. .Text = "Das" & vbNewLine & "ist" & vbNewLine & "ein" & vbNewLine & "Test."
    5. End With
    Weil die 3 Lables für verschiedene Informationen stehen ich dann alle drei zentrieren müsste wobei es bei einem Steuerelement dann viel einfacher geht.

    EDIT:
    Ich hab das Ganze jetzt doch per Lable gelöst, allerdings nur mit einem Lable und MinimumSize auf die Größe die ich haben wollte sowie TextAlign auf TopCenter gesetzt.

    Trotzdem Danke für die Hilfe, auch wenn es Verständigungsprobleme gab ;D

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Fl3xXx.^“ ()

    Ich hätt noch ne Variante zum Thema Fokus.
    Bei VB gibts doch extra n Fokus-Ereignis wenn ich mich nicht irre.

    Also du nimmst das Fokus ereignis (glaub das heißt eig. "ENTER") und dann tust du einfach etwas anderes Fokusieren, sobald das Sub aktiv wird.
    z.B. Button1.Focus oder TextBox2.Focus.

    Mfg der VIRUS