transparente textbox

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von razzzer530i.

    transparente textbox

    tachen leute,
    also nur vorab ich weiß das es berreits ein paar themen darüber gibt aber ich hätte trotzdem gerne nochmal ne erklärung wie das geht. Also ich habe ein Hintergrundbild auf meine form gelegt und da ein textbox(multiline) drüber so dise kann man aber jetzt nur in einer farbe machen ich möchte aber das es nachher so aus sieht als ob man auf dem hintergrund bild schreibt wie geht das?

    vielen dank im vorraus

    mfg
    discounter

    bitte um möglichst klare antworten :)
    ManageMe Minecraft Server Zum schnellen Erstellen und Verwalten von eigenen Minecraft Servern!
    Wenn Du Text in ein Bild reinmales willst, kannst Du dies z.B. im Paint-Event getriggert vom KeyDown-Event tun.
    Also:
    KeyPreview = True
    im KeyDown-Event baust Du Dir einen Ziel-string zusammen (später ggf. KeyPress-Event), Du löst ein Invalidate(AREA) aus, wobei AREA die Zielposition des Textes ist.
    Im Paint-Event malst Du den String mit Graphics.DrawText() an seine Position.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    nee ich möchte das schon in der textbox haben und an hayyu habe ich schon gesehen und der code hat zwar keine fehler gebracht aber mir trozdem nicht weitergeholfen
    ManageMe Minecraft Server Zum schnellen Erstellen und Verwalten von eigenen Minecraft Servern!

    VB.NET-Quellcode

    1. Class TransparentTextBox
    2. Inherits TextBox
    3. <DllImport("kernel32.dll", SetLastError:=True)> _
    4. Public Shared Function LoadLibrary(ByVal lpFileName As String) As IntPtr
    5. End Function
    6. Protected Overrides ReadOnly Property CreateParams() As CreateParams
    7. Get
    8. Dim prams As CreateParams = MyBase.CreateParams
    9. If LoadLibrary("msftedit.dll") <> IntPtr.Zero Then
    10. prams.ExStyle = prams.ExStyle Or &H20
    11. prams.ClassName = "RICHEDIT50W"
    12. End If
    13. Return prams
    14. End Get
    15. End Property
    16. End Class
    Funktioniert's mit dieser Klasse nicht? (einfach instanziieren und dann per Controls.Add hinzufügen)

    haiyyu schrieb:

    Transparente Textbox

    Ich hab mir mal diese Seite angesehen.
    Wenn Du eine RichTextBox nehmen willst, geht das folgendermaßen:
    Mach Dir folgendes UserControl und fertig:

    VB.NET-Quellcode

    1. Imports System.Windows.Forms
    2. Public Class TransparentRichTextBox
    3. Inherits RichTextBox
    4. Private Const CP_TRANSPARENT As Integer = &H20
    5. Protected Overrides ReadOnly Property CreateParams() As CreateParams
    6. Get
    7. Dim myCp As CreateParams = MyBase.CreateParams
    8. myCp.ExStyle = myCp.ExStyle Or CP_TRANSPARENT
    9. Return myCp
    10. End Get
    11. End Property
    12. End Class
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany

    Also an sich ja klasse aber sobald man den Text per .AppendText hinzuügt und mit ScrollToCaret nach unten geht - oder manuel scrollt, passiert ein Unfall und man kann nichts mehr lesen. Weiß allerdings nicht wie ich das verhindern kann :x
    ~Wir leben zwar alle unter dem gleichen Himmel, aber es haben nicht alle den gleichen Horizont~