Transparente Textbox

    • VB.NET

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

      Transparente Textbox

      Hi
      Ich hab vor einiger zeit mal ne transparente Textbox gesucht. Dies erwies sich als gar nicht so leicht.
      Es gibt im Internet einige fragen nach so einem control.
      Dann hab ichs endlich gefunden. wie so oft ist des Rätsels lösung ganz einfach und kurz!
      Weil es anscheinend öfter gebraucht wird, geb ich euch mal den code:

      Ihr macht ein usercontrol und leitet es von der Textbox/RichTextBox ab.

      fügt verweise von

      System.Windows.Forms
      System.Runtime.InteropServices

      schreibt in die obersten 2 Zeilen

      Imports System.Windows.Forms
      Imports System.Runtime.InteropServices

      dann fügt ihr diesen code ein:

      VB.NET-Quellcode

      1. <DllImport("kernel32.dll", SetLastError:=True)> _
      2. Public Shared Function LoadLibrary(ByVal lpFileName As String) As IntPtr
      3. End Function
      4. Protected Overrides ReadOnly Property CreateParams() As CreateParams
      5. Get
      6. Dim prams As CreateParams = MyBase.CreateParams
      7. If LoadLibrary("msftedit.dll") <> IntPtr.Zero Then
      8. prams.ExStyle = prams.ExStyle Or &H20
      9. prams.ClassName = "RICHEDIT50W"
      10. End If
      11. Return prams
      12. End Get
      13. End Property


      speichern, erstellen und die erhaltene DLL in die Toolbox einfügen.
      Vertig!
      Die TextBox ist durch diesen code voll durchsichtig!
      :P Mfg Aligator :P

      Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von „aligator“ ()

      dann is gut :thumbsup:

      Wenn ich noob like c&p mache kommen Haufen Wiese Fehler...
      Leider, da ich die Idee sehr schön finde :)
      da muss man noch verweise hinzufügen.
      hab ich jetzt noch dazugeschrieben.
      :P Mfg Aligator :P
      ich hab den Code mal bisserl gehübscht - ist ja nicht einzusehen, dass jedesmal, wenn CreatParams abgerufen wird, eine Lib geladen wird.

      VB.NET-Quellcode

      1. <System.ComponentModel.DesignerCategory("Code")> _
      2. Public Class GlasRtb : Inherits RichTextBox
      3. <Runtime.InteropServices.DllImport("kernel32.dll", SetLastError:=True)> _
      4. Private Shared Function LoadLibrary(ByVal lpFileName As String) As IntPtr
      5. End Function
      6. Private Shared msftEditSuccessfulLoaded As Boolean = LoadLibrary("msftedit.dll") <> IntPtr.Zero
      7. Protected Overrides ReadOnly Property CreateParams() As CreateParams
      8. Get
      9. Dim prams As CreateParams = MyBase.CreateParams
      10. If msftEditSuccessfulLoaded Then
      11. prams.ExStyle = prams.ExStyle Or &H20
      12. prams.ClassName = "RICHEDIT50W"
      13. End If
      14. Return prams
      15. End Get
      16. End Property
      17. End Class

      Es handelt sich übrigens nicht um ein UserControl, sondern es ist ein eigenes Control, was von RTB erbt.
      Dateien

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