Tranparente RichTextBox

19/06/2008 - 17:22 von Martin H. | Report spam
Hallo,

ich habe folgendes Problem: Der nachfolgende Code nutzt die RichTextBox
aus der msftedit.dll, die neuer ist als die RichTextBox von .NET und
u.a. Transparenz erlaubt.

Public Class RichEdit50
Inherits RichTextBox

Declare Auto Function LoadLibrary Lib "kernel32.dll" (ByVal lpFileName _
As String) As IntPtr

Private Const WS_EX_TRANSPARENT As Int32 = &H20I

Public Sub New()
SetStyle(ControlStyles.SupportsTransparentBackColor, True)
End Sub

Protected Overloads Overrides ReadOnly Property CreateParams() As _
CreateParams
Get
Dim prams As CreateParams = MyBase.CreateParams
If LoadLibrary("msftedit.dll") <> IntPtr.Zero Then
If BackColor = Color.Transparent Then
prams.ExStyle = prams.ExStyle Or WS_EX_TRANSPARENT
End If
prams.ClassName = "RICHEDIT50W"
End If
Return prams
End Get
End Property


Das Problem ist nur, daß wenn ich in der transparenten RichTextBox Text
eintippe, erscheinen neben den Buchstaben senkrechte Striche.
Beim Markieren von Buchstaben, werden die Buchstaben blau unterlegt und
nach einem Klick in die RichTextBox (Markierung aufheben) bleibt die
Unterlegung.

Wie kann ich diese beiden Probleme beheben?

Besten Dank im voraus!

Martin
 

Lesen sie die antworten

#1 Kerem Gümrükcü
20/06/2008 - 04:40 | Warnen spam
Hallo Martin,

Wie kann ich diese beiden Probleme beheben?



ich tippe jetzt nur mal: Vielleicht hilft
ein erzwungenes neuzeichnen des RTB
Inhallts,...probiers mal,...

Grüße

Kerem

Beste Grüsse / Best regards / Votre bien devoue
Kerem Gümrükcü
Microsoft Live Space: http://kerem-g.spaces.live.com/
Latest Open-Source Projects: http://entwicklung.junetz.de
"This reply is provided as is, without warranty express or implied."

"Martin H." schrieb im Newsbeitrag
news:485a79bd$
Hallo,

ich habe folgendes Problem: Der nachfolgende Code nutzt die RichTextBox
aus der msftedit.dll, die neuer ist als die RichTextBox von .NET und
u.a. Transparenz erlaubt.

Public Class RichEdit50
Inherits RichTextBox

Declare Auto Function LoadLibrary Lib "kernel32.dll" (ByVal lpFileName _
As String) As IntPtr

Private Const WS_EX_TRANSPARENT As Int32 = &H20I

Public Sub New()
SetStyle(ControlStyles.SupportsTransparentBackColor, True)
End Sub

Protected Overloads Overrides ReadOnly Property CreateParams() As _
CreateParams
Get
Dim prams As CreateParams = MyBase.CreateParams
If LoadLibrary("msftedit.dll") <> IntPtr.Zero Then
If BackColor = Color.Transparent Then
prams.ExStyle = prams.ExStyle Or WS_EX_TRANSPARENT
End If
prams.ClassName = "RICHEDIT50W"
End If
Return prams
End Get
End Property


Das Problem ist nur, daß wenn ich in der transparenten RichTextBox Text
eintippe, erscheinen neben den Buchstaben senkrechte Striche.
Beim Markieren von Buchstaben, werden die Buchstaben blau unterlegt und
nach einem Klick in die RichTextBox (Markierung aufheben) bleibt die
Unterlegung.

Wie kann ich diese beiden Probleme beheben?

Besten Dank im voraus!

Martin

Ähnliche fragen