|
The MSDN article seems very helpful. I got some results right away. Not exactly what I wanted, but I think I'll be able to convert it to something useful.
Thanks!
|
|
|
|
|
Creating really transparent controls can be quite tricky because of the way controls are painted.
But basically you'll have to override your control's CreateParams to include the WS_EX_TRANSPARENT extended window style and override OnPaintBackground to do nothing. A transparent control would look like this:
public class TransparentControl : Control
{
public TransparentControl()
{
SetStyle(ControlStyles.UserPaint, true);
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
SetStyle(ControlStyles.SupportsTransparentBackColor, true);
BackColor = Color.Transparent;
}
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x00000020;
return cp;
}
}
protected override void OnPaintBackground(PaintEventArgs pevent)
{
}
} You can add your own OnPaint() override, of course, to perform your foreground painting.
Regards,
mav
|
|
|
|
|
Even better! Thanks again for all your help!
|
|
|
|
|
I tried to inherit from Label instead of Control, but I'm a bit puzzled by the result. This results in a black box where I had a transparent box when inheriting from Control. I then try to override OnPaint() as well, but no there is no change in behaviour. I figured it would have something to do with the CreateParamas class returned, but I can't find very few differences between the Style and ExStyle properties when inheriting from Control versus inheriting from Label. The only difference is to the Style property where the Label does not set WS_TABSTOP, but sets CCS_TOP, CCS_NORESIZE and CCS_NOPARENTALIGN.
Any idéa to why I get this result?
|
|
|
|
|
Not really, I guess Label is performing its own PaintBackground actions.
mav
|
|
|
|
|
Ofcourse I'm overriding OnPaintBackground(). I've also looked into the code behind the Label control using Lutz Roeders Reflector. The Label does not contain an implementation for OnPaintBackground(). As I understand it, no painting should go on from the Label's point of view if I override all OnPaint* methods with empty ones?
|
|
|
|
|
Don't know why it behaves like this when inheriting from Label .
I've created my own TransparentLabel (drawing the text myself isn't too much work ) and it works well.
Also using the TransparentControl as base class for a semi-transparent aqua-bubble control works well...
mav
|
|
|
|
|
I'm just lazy. Even the most simple control like the label contains much functionality that you don't think about. Text alignment, auto size etc. If I am to implement all or most of it, it will have to do quite a bit of coding compared to inheriting and adding the custom functions I like.
And sadly my work doesn't stop with the Label. Other controls that I would like to be transparent that I can come up with on the top of my head is the Panel, RadioButton, CheckBox...
Thanks anyway. This has been an interesting experience.
|
|
|
|
|
Dear all experts ,
I need to do a Pocket PC application, a wireless management system,
basically liek this, person A use PocketPC (ipaq) OS: win mobile / win ppc 2002 or 2003.. access to wireless access point, and retrive data from a Server ( desktop).
Normally, it will retrieve some data like doc file, exel, picture... but he can upload the file to the server too.
beside this, once it access the server via Wifi, he can sync his inbox message, some announcement, or notes....
so basically, its a office management system...
So i have chosen C# .net for my application, but after reading 2 big books, i am still blur with everything .. i want to ask ..
1.how can i create "login page", basically a testbox for username and a testbox for password, then a button to "login", i think i will be using sql, so i need the coding to connect to sql CE server and verify the password..
can anyone show me the how can it be done ?
2. let say i at form 1, then supose i want to go to another form which is form2 , how i going to link it to form2 ? Onfocus ?
Thanks all, appreciate it !
|
|
|
|
|
can anyone help me on this ?
thanks !
|
|
|
|
|
hi all,
I am new to c# so please help me here...
I am tryin to build a HTML compare tool, which opens two htmls with the same name from diff folders. I am using two axwebbrowsers to view the htmls(both are present in the same form).
I now want to add synchronized scrolling to the axwebbrowsers(i.e when one window is scrolled the other is scrolled to the same extent to assit a visual caompare).
Can anyun please help me here? is my choice of axwebbrowser right? or can i use something else?
any help will be appreciated
|
|
|
|
|
Hi,
How do i change the color of the text in a treeview to a diff color ?
Saleem
|
|
|
|
|
Hi!
Exactly like everywhere else: set the node's appropriate ForeColor .
mav
|
|
|
|
|
Thanx,
It's very simple....
saleem
|
|
|
|
|
Hi friends....
I have a problem ,the code snippet is given below.
I have a mfc shared memrory dll class.I want to instanciate an object of this class in C# .Can you provide some code sample to achieve it.
#ifdef _FtpChannel
#define _EXPORT_IMPORT_FtpChannel __declspec(dllexport)
#else
#define _EXPORT_IMPORT_FtpChannel __declspec(dllimport)
#endif
class _EXPORT_IMPORT_FtpChannel CFtpMessage : public IConnection
{
private:
public:
CFtpMessage();
~CFtpMessage();
};
Sudhir Mangla
http://Programmerworld.net
(Free books , articles , Source Code and Programming Tools and Utilities)
|
|
|
|
|
hello,
my application asks the user to enter a few words and the application arrange these words to create a 15x 15 crossword puzzle .
do you know any alogrithm that can help me to arrange the words in a way that gets the best result
|
|
|
|
|
|
I have the following and have the error when I try to close the FileStream. It says cannot access fs as it no longer exist. something like that.
But I did not delete it.. I have this problem when I have the close the Stream Reader statement. Also, shouldn't the if statement work in checking if the FileStream still exist?
I'm Confused
<br />
string path = @"c:\TrayCount.txt";<br />
<br />
fs = new FileStream( path, FileMode.OpenOrCreate , FileAccess.ReadWrite, FileShare.ReadWrite);<br />
<br />
sr = new StreamReader(fs);<br />
sw = new StreamWriter(fs);<br />
<br />
<br />
if(sr!=null)<br />
sr.Close();<br />
<br />
if(sw!=null)<br />
sw.Close();<br />
<br />
if(fs!=null)<br />
fs.Close();
|
|
|
|
|
Closing a reader or writer also closes the associated FileStream
|
|
|
|
|
well I checked the documentation for this and indeed it is right ... closing the streamreader/writer will close the stream associated with it.
For some wierd reason till today I always use to assosciate one filestream to one reader / writer ... gladly never faced this problem
I dont know if they got the implementation right. you are exclusively stating that you want FileShare mode and when u do that u expect that this filestream is going to be shared.
I think they should have provided a reference count on SHARED system resource or atleast in IOStream .... espescially when it is explicitly indicate that u expect the filestream to be shared.
might be worth taking up this to msdn
Pushkar Pathak
|
|
|
|
|
The other thing i'm still confused is that of the if statement.
Shouldn't if( fs!=null) be enough to check that the filestream has already closed?
|
|
|
|
|
Why should closing a FileStream object set your reference to null ?
Calling Close on a FileStream means calling a method of an object, like every other method call. For your reference to be null after the call I'd assume there'd have to be the line this = null; somewhere in FileStream.Close() and I strongly doubt that this works...
mav
|
|
|
|
|
|
Calling Dispose() doesn't make the object eligible for garbage collection. An object will be GC'ed only if there are no live references to it.
Regards
Senthil
_____________________________
My Blog | My Articles | WinMacro
|
|
|
|
|
hi,
anyone know how to add a file/shortcut to All User's Desktop?
currently, i know how to add to user desktop(user install the application). however, not all the case user account is same as installation user account.
any help?
thanks,
jim
|
|
|
|