|
This is simply not true. There is one computer screen and hence only
one set of pixels. If the form background is gray and one draws a green circle those pixels become green. The Form Background is still gray. If a control on top of the form obscures the circle and then moved the form paint event repaints the circle. The circle is by no means part of the background.
Also Dave, It's not true that color.transparent simply gives the control the
container background. If I manually give the control the same background as the
form the circle is not visible. Meaning that color.transparent clearly does
something more.
What it does I don't know.
|
|
|
|
|
errorfunktion wrote: It's not true that color.transparent simply gives the control the
container background.
Wanna bet??
errorfunktion wrote: If I manually give the control the same background as the
form the circle is not visible.
No kidding. That's exactly what is expected.
If you have a background image on the form, the control with the Transparent background WILL show the background image of the form that contains it. Any controls between the background of the form and the Transparent control will NOT show through. The background of the control will take a snippet of the form's background image and make that snippet the background image of the control.
|
|
|
|
|
Why the sarcasm Dave? After all you agree with me.
Color.Transparent also tells the control to get its background image from
it's container, and hence it does more than simply set it's own background to the same color. Semantics. Never mind.
Meanwhile I've made some progress. I've created a derived button class called MyButton. I also have a regular old button, I've written this code in it's event handler:
Dim img as New Bitmap(TransparentControl.Width,TransparentControl.Height)
Dim GraphicsObject as Graphics=Graphics.FromImage(img)
'I now use a translation transform to account for the diffrence in position
'of the transparent control and the MyButton object:
GraphicsObject.TranslateTransform( _
MyButton1.Location.X-TransparentControl.Location.X, _
MyButton1.Location.Y-TransparentControl.Location.Y)
'I now call the derived Button's OnPaint Event using the Graphics object I
Just created.
MyButton1.OnPaint(New PaintEventArgs( _
GraphicsObject,TransparentControl.DisplayRectangle))
'And Finally I set the Transparent control background image to this image.
TransparentControl.BackgroundImage=img
The derived buttons shape (It's white body) is properly located and visible
on the back of my control. But the buttons text caption is not translated for some reason.
Is the the caption not drawn in the OnPaint Event or something?
|
|
|
|
|
errorfunktion wrote: Why the sarcasm Dave? After all you agree with me.
That's not how it sounded to me...
errorfunktion wrote: I've created a derived button class called MyButton. I also have a regular old button, I've written this code in it's event handler:
Which event??
errorfunktion wrote: Dim img as New Bitmap(TransparentControl.Width,TransparentControl.Height)
Dim GraphicsObject as Graphics=Graphics.FromImage(img)
'I now use a translation transform to account for the diffrence in position
'of the transparent control and the MyButton object:
GraphicsObject.TranslateTransform( _
MyButton1.Location.X-TransparentControl.Location.X, _
MyButton1.Location.Y-TransparentControl.Location.Y)
'I now call the derived Button's OnPaint Event using the Graphics object I
Just created.
MyButton1.OnPaint(New PaintEventArgs( _
GraphicsObject,TransparentControl.DisplayRectangle))
You're going to have to explain this a bit better. Where is this code?? Does your button class derive from Button, or from UserControl??
errorfunktion wrote: 'And Finally I set the Transparent control background image to this image.
TransparentControl.BackgroundImage=img
What TransparentControl? Where did this come from??
|
|
|
|
|
Well I got it working. Here's a couple of screenshots:
http://rapidshare.com/files/53533392/tccontrol1.bmp.html
http://rapidshare.com/files/53531028/tcontrol2.bmp.html
In the forms paint event I have drawn a circle in the upper left corner.
I have also placed a button in the upper left corner.
The arrow shaped thingy is my control.
All You need is a derived control in my case:
Public Class TransparentControl
Inherits Control
'Set These Options:
Public Sub New()
SetStyle(ControlStyles.SupportsTransparentBackColor, True)
BackColor = Color.Transparent 'It might be necessary to override the base 'backcolor property
'Add some code to the paint event to draw the control and use a color with alpha level less then 255.
'As you can see in the first screen capture the form background is visible, but the control is obscured.
' To make the button also visible through the control you can use the button's draw to bitmap method and set that bitmap as
' the controls background image.
' Right now this code is in the button's paint event handler and it makes things a bit twitchy.
There's probably a better position for it.
Private Sub Button1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Button1.Paint
Dim control_rect As New Rectangle(Me.TransparentControl1.Location, Me.TransparentControl1.Size)
Dim button_rect As New Rectangle(Me.Button1.Location, Me.Button1.Size)
'Checks If the control area's recangle interesects with the button's
If control_rect.IntersectsWith(button_rect) Then
'Find the area of the intersection
control_rect.Intersect(button_rect)
'Offset the area of intersection to account for the different positions
control_rect.Offset(-Me.TransparentControl1.Location.X, -Me.TransparentControl1.Location.Y)
Dim im As New Bitmap(Me.TransparentControl1.Width, Me.TransparentControl1.Height)
Me.Button1.DrawToBitmap(im, control_rect)
Me.TransparentControl1.BackgroundImage = im
End If
End Sub
That's It.
Thanks for the help Dave
Gary
|
|
|
|
|
You may want to play around with this some more. Like moving other windows over the top of your controls and away so that they repaint. Moving your window off-screen and back on again. minimizing and restoring your window. Anything else you can think of. Your control has to stand up to being repainted in every situation you can think of.
|
|
|
|
|
Hello. I'm migrating an application that connects to a remote machine. Before it used sockets, and now a web service. I'm not sure about how to control the time to wait for a response. I'm looking for a kind of timer that waits some time and if it has no response, throws an exception.
How can I do that?
Regards,
Diego F.
|
|
|
|
|
You can set the amount of time the webservice will work before sending back an error by setting the executionTimeout attribute in the web.config. Just like you would for a website, like this:
<httpRuntime executionTimeout="180"/>
Then you can put your call to the webservice in a try catch block. The timeout error is a System.Net.WebException. You may want to make sure the message includes the correct error message, though, since there are other System.Net.WebExceptions that could fire. So it would look something like this:
Try
myWebService.MyWebServiceMethod(parm1)
Catch ex as System.Net.WebException
If ex.Message.ToUpper.Contains("TIMED OUT") Then
msgbox("Web service method timed out.")
Else
msgbox("Web error: " & ex.Message)
End If
Catch ex as Exception
msgbox("Error: " & ex.Message)
End Try
|
|
|
|
|
How do I create and update environment variables in the installtion package ?
|
|
|
|
|
perhaps u can try at file menu --> build --> publish
|
|
|
|
|
I can not see how this will update for example the path variable ?
|
|
|
|
|
Hello,
I have a class with many static methods. Now I want call methods from this class during runtime. The name of the method and the parameter names/values are given by string. (Background: The methods contain code for filling comboboxes and I want to write an AJAX-Solution to fill different types of comboboxes initiated by user-click inside a web page)
Now I'm in a state of confusion, if that's possible. NOTE: Must be work with Framework 1.1 !!!
Can anybody help me, please ?
Stephan
\\\| \\ - -
( @ @ )
+---------------oOOo-(_)-oOOo-----------------+
| Stephan Pilz stephan.pilz@stephan-pilz.de |
| <a href=http:
| ICQ#: 127823481 |
+-----------------------Oooo------------------+
oooO ( )
( ) ) /
\ ( (_/
\_)
|
|
|
|
|
So you want to run a method based on a string that is sent from the client? That's a pretty bad idea, as anyone can send any string to your server to run any method they like.
---
single minded; short sighted; long gone;
|
|
|
|
|
You are right, but not exactly
Will make a self written AJAX-call with different parameters. Some parameters describes the call of the method. Please don't panic about the security. Is an internal website with different authorization mechanism.
Stephan
\\\| \\ - -
( @ @ )
+---------------oOOo-(_)-oOOo-----------------+
| Stephan Pilz stephan.pilz@stephan-pilz.de |
| <a href=http:
| ICQ#: 127823481 |
+-----------------------Oooo------------------+
oooO ( )
( ) ) /
\ ( (_/
\_)
|
|
|
|
|
Try
AssemblyContents and TypeContents to invke method from its name in string format
Salman Sheikh
|
|
|
|
|
Thanks for the answer, but I can't find AssemblyContents or TypeContens (or so) in online help msdn.
Did you have more informations about that? Objects, Namespace, use of it, ... =
Stephan
\\\| \\ - -
( @ @ )
+---------------oOOo-(_)-oOOo-----------------+
| Stephan Pilz stephan.pilz@stephan-pilz.de |
| <a href=http:
| ICQ#: 127823481 |
+-----------------------Oooo------------------+
oooO ( )
( ) ) /
\ ( (_/
\_)
|
|
|
|
|
|
Hello,
I am trying to get Media (blank CD or DVD) disk space (650MB/700MB or 4.7 GB) in vb.net.
Please help
Thanks
Shay Noy
|
|
|
|
|
There's nothing in the Windows API that will tell you this. You'd have to use a third party library, like Nero's SDK, to get that kind of information. Sorry, I don't have any examples.
|
|
|
|
|
Thank you,
I try to use Nero and getting this information but with no success.
Someone can help.
Thanks
Shay Noy
|
|
|
|
|
You should have said that before.
Your best source of information is going to be a support board for the library that your using. I guarantee you that 99.9% of the people here have not used a CD Burning library.
|
|
|
|
|
hey guy
just add the button and link the path of nero
simply don,t gowhere
whenever u want to run it will display the all nero part
ok bye
write code in button or etc
dim nero as string
nero="add path of nero smart smart"
it will display
byeee
hope u understand
lucky
|
|
|
|
|
Hello All,
Well i am working with collections in the project.
I have set the datasource property of the datagrid to a collection (I am not using dataset just the collection).
I am unable to format the datagrid using the tablestyles.
Would anyone please help me in formating the datagrid (using tablestyles) when the datasource property is set to a collection.
Thanks in advance,
P.S - I am unable to set the mappingname property in the tablestyle to collection.
if you send a mail at gokhale.i1@gmail.com in response to this query it would be better...
|
|
|
|
|
Hi, I designed my application in vb2005. I have a windows form application and contain combobox. My combo box contain an item and i set a dropdownstyle property to dropdownlist .
The problem occure when i try to delete the text from the combobox. I try to write the code combo1.text="" but the text still remain the combobox. Can anyone help me to solve this problem?
Thank in advance
|
|
|
|
|
try combo1.selectedtext=""
but why would you want to delete the text?
If it is because there is text in it the moment you start you form then you should put the selectedindex to -1
combo1.selectedindex=-1
you can also try
combo1.selecteditem=nothing
since you have set the property to dropdownlist the user can not type into it so the text displayed is whitout a doubt a item and therefor the selecteditem or selectedindex will most likly work best
If my help was helpfull let me know, if not let me know why.
The only way we learn is by making mistaks.
|
|
|
|