473,386 Members | 1,795 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,386 software developers and data experts.

Control.BackColor Transparency, Control.BackColor = Color.Transparent

in my app i need to make a RichTextbox control transparent.

i need it to be a like a pane of glass lying on a sheet of paper, where u
can see everything on the sheet of paper not covered by text written on the
glass pane. i need to be able to see the control or form that is underneath
the RichTextbox, and at the same time to be able to write and erase text to
the RichTextbox.

i'm assuming that it is the backcolor that hides what is underneath a
control. so i tried setting rtb.BackColor = Color.Transparent.

when u do that u get a error that BackColor may not be Color.Transparent.
bummer. i looked for help and found the following link on the cd that came
with net 2005

ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.en/dv_fxmclictl/html/32433e63-f4e9-4305-9857-6de3edeb944a.htm
the heading is:
How to: Give Your Control a Transparent Background

in it it tells u the following:

========================
By default, controls do not support transparent backcolors. However, you can
allow your control to have a background color that is opaque, transparent,
or partially transparent by using the Control.SetStyle Method in the
constructor. The SetStyle method of the Control class allows you to set
particular style preferences for your controls, and can be used to enable or
disable support for transparent backcolors.

To give your control a transparent backcolor
Locate the constructor for your control class.

Call the SetStyle method of your form in the constructor.

SetStyle(ControlStyles.SupportsTransparentBackColo r, True)

This will enable your control to support a transparent backcolor.

Beneath the line of code you added in step 1, add the following line. This
will set your control's BackColor to Transparent.

Me.BackColor = Color.Transparent
======================================

i subclassed the RichTextbox control, added a constructor, as follows: (i
tried Me.SetStyle(ControlStyles.Opaque, False)
& Me.SetStyle(ControlStyles.Opaque, True) & omitting it alltogether, it
didn't help.)
---------------
Public Class clsRtbx
Inherits System.Windows.Forms.RichTextBox
Sub New()
SetStyle(ControlStyles.SupportsTransparentBackColo r, True)
Me.SetStyle(ControlStyles.Opaque, False)
Me.BackColor = Color.Transparent
End Sub

End Class
--------------

to test it, i did the following in the Form_Load event

Dim rtb2 As New clsRtbx

rtb2.Text = ""
rtb2.Top = 0
rtb2.Left = 0
rtb2.Width = 300
rtb2.Multiline = True
rtb2.Height = 200
rtb2.BackColor = Color.Transparent 'i tried with this line, and without
it
Me.Controls.Add(rtb2)
rtb2.BringToFront()

when i did this, i did not get the color transparency error, but it still
hides everything underneath itself!

am i missing something?

i would greatly appreciate to find out if a control can be make transparent
(as explained above, to see what is underneath it, while being able to
write/erase to it), and how to do it.

thanks, ray


Jun 12 '06 #1
4 9316
I have code for this, but you will need to be patient as it is somewhere I
need to find.
Jun 12 '06 #2
stuart,

any chance u found the code?

thanks, ray
Jun 23 '06 #3
I remember promising to do something about a transparent textbox?
Please let me know if this is OK

Inherits System.Windows.Forms.RichTextBox' doesn't work with TextBox
Private Const WM_SHOWWINDOW As Long = &H18
Private Const WM_SETFONT As Long = &H30
Public Sub New()
MyBase.New()
SetStyle(ControlStyles.SupportsTransparentBackColo r Or
ControlStyles.UserPaint Or ControlStyles.AllPaintingInWmPaint Or
ControlStyles.DoubleBuffer, True)
End Sub
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
MyBase.WndProc(m)
Select Case m.Msg
Case WM_SHOWWINDOW
Dim msg As Message = Message.Create(Handle, WM_SETFONT, Font.ToHfont(),
IntPtr.Zero)
MyBase.WndProc(msg)
End Select
End Sub
Protected Overrides ReadOnly Property CreateParams() As
System.Windows.Forms.CreateParams
Get
Dim cp As CreateParams = MyBase.CreateParams
cp.ExStyle = cp.ExStyle Or &H20
Return cp
End Get
End Property
Protected Overrides Sub OnPaint(ByVal e As
System.Windows.Forms.PaintEventArgs)
If Me.GetStyle(ControlStyles.UserPaint) Then
Me.myInvalidate()
Me.SetStyle(ControlStyles.UserPaint, False)
End If
End Sub
Jun 23 '06 #4
hi stuart,

thanks so much for the snipped it worked fine.

(there was i think a small typo, in the OnPaint sub, 'Me.myInvalidate()'
gets flagged down as an error saying that myInvalidate is not a member, i
changed it t 'Me.Invalidate()', and i think it works fine. i never tinkered
that deep down in controls, so please let me know if this was your
intention, or else please let me how u would fix this.)

thanks again,

ray
Jun 27 '06 #5

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

5
by: Paul Schnitter | last post by:
Update: My custom control is based on the article "Creating Visual Basic .NET controls from scratch" in "Adventures in .NET" on MSDN. It is designed to be a replacement for the VB6 shape...
6
by: Tom | last post by:
why doesn't user control support transparent ? even after you programmatically make it transparent the controls that you add on it still doesn't transparency where they normally would in a winform...
20
by: Nathan Sokalski | last post by:
I am trying to create graphics with GDI+ that include transparency. However, the transparency never seems to show up, even though my colors have an alpha value of 0. How can I generate a graphic...
1
by: Efkas | last post by:
My application have some level : 1. MyButton class with Label inheritance 2. MyComponent as User Control loading and positionning some of MyButtons 3. MyApp loading and positionning MyComponent ...
2
by: Simon Tamman {Uchiha Jax} | last post by:
I understand that MS made their controls annoyingly difficult to modify (for example transparency on a listbox, tab control, treeview etc) to ensure they didn't torpedo the third party control...
9
by: SStory | last post by:
I have a picturebox in my About form. would like to have a link to my company website. Wanted the links background to be transparent. It seems that no one knows how to do this. Have asked...
1
by: t perkins | last post by:
would there be a reason why i cannot set the backcolor on lables to be transparent. it is set to be transparent, but it does not work for some reason. any help would be greatly appreciated ...
0
by: MasterOfTheDark | last post by:
This one's a hairy one to explain. What I've got is a class called "VistaGroupBox" that I put some nice-looking Vista-style gradients in the background and made to look like the ribbon categories...
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.