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
>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." <hk...@gmx.net> schrieb im Newsbeitrag
news:485a79bd$1...@127.0.0.1...
falls es für jemanden nochmal interessant sein sollte:
Der vorher angegebene Code funktioniert - unter der Voraussetzung,
daß die RTF-Box sich in einem Container befindet.
Das Problem das ich hatte lag darin begründet, daß ich die RTF-Box
über eine PictureBox gelegt hatte. Jetzt, nachdem das Hintergrundbild
in einem Panel ist und die transparente RTF-Box auf dem Panel liegt,
funktioniert es.
Der Hinweis lag auf
http://msdn.microsoft.com/en-us/library/aa453060.aspx
WS_EX_TRANSPARENT: Specifies that a window created with this style
should not be painted until its siblings have been painted. The window
appears transparent because the bits of underlying sibling windows have
already been painted.
Beste Grüße,
Martin