.Net WinForms Form OnPaint() Transparency Refresh?
Aug 13, 2010
I'm trying to write some toast-style popup notifications (similar to Growl) which should appear next to the system tray and stack as appropriate.I can handle the instantiation/location/etc... but I want to add a capability for non-rectangular toasts. I'd also like to have Alpha transparency so a semi-transparent background PNG on the toast form would blend with the desktop or windows behind it.
So... To get the obvious out of the way: Form.TransparencyKey is not sufficient for my needs as it's an all-or nothing transparency effect I want to get 50/50 foreground/background in some places, 0/100 in others, 100/0 in yet others etc.My initial approach is to override the OnBackgroundPaint() method, comment out the call to MyBase.OnBackgroundPaint and use the graphics object in the eventargs to draw exactly what I want to a form.This seems to work to start with - at the moment, I'm just drawing some rectangle for testing purposes so a PNG may present new difficulties but I haven't got there yet.
What I haven't been able to accomplish is updating the graphic - The first time the form is rendered, it shows perfectly as I'd expect (no border, just some rectangles floating on a desktop). If I move the windows behind the transparent window, the transparent window doesn't update/re-paintI believe that I need to be calling Me.Invalidate() to force a re-draw but am unsure when I should make the call - How do I know a window behind me has changed its' contents?
Edit: I tried putting a Me.Invalidate() inside a timer just to test how the redraw happens - it seems that it does trigger a re-draw but the re-draw opccurs OVER the existing form background - ie an area that was originally 50% opaque is now 75% opaque (50% + 50% of what was there before)So, after a couple of Invalidate()s, my form is showing as a black box - I need to clear the background of the form before re-drawing but Graphics.Clear(Color) seems to simply do a fill with the specified color - and obviously for the purposes of this question, Colors.Transparent doesn't really mean transparent - It seems to be a trick used when rendering the window to "show contents of control beneath this" which just doesn't work when we're dealing with the form itself?
Imports System.Drawing
Public Class TransparentForm
Private Timer As Timers.Timer
[code]....
View 1 Replies
ADVERTISEMENT
Feb 10, 2011
Is it possible to use WPF in WinForms, to implement the idea used in this question. I am trying to create a semi-transparent panel.
View 3 Replies
Jun 5, 2009
Lets say i label "label1" , and 2 buttons named "button1" and "btnRefresh " [code]So , when user press the button 1 , the text will change. But what should i put inside btnRefresh to reload the forms ? and display the default label.text = "Form Load" ???
View 9 Replies
Feb 16, 2012
I have a windows form with a DataGridView control.I bound it into an attached DB file (.mdf).I perform insertion by generating a dynamic Insert statement. I then pump this sql statement into a SqlCommand object and perform ExecuteNonQuery() method. All of these is performed by handling a Button click event. The button and the gridview is located on the same form.
Public Sub InsertRow(ByVal param1 As String, ByVal param2 As String, ByVal param3 As String)
Dim strConn As String = (the connection string)
Dim sqlConn As New SqlConnection(strConn)
[code]....
After the code execution, the DataGridView is not updating (remains intact). I have to exit the form and reload it to have the updated gridview.For certain reasons, I can't use DataTable object.But I would like to have this gridview updated everytime I run the insertion.
View 5 Replies
Mar 3, 2010
I have a class that has a readonly collection property - Its a list of extender providers that have been applied to the control.I've implemented a simple property descriptor for the collection so that the property can be expanded in the property grid to examine each entry.
When I select an extender provider and set it to false, I remove it from the collection. The GetProperties method of the type converter is requeried and the property grid refreshes.However, when I set an extender provider to true, and thus add it to the collection, GetProperties is not requeried.
Somehow, the property grid is making a distinction between adding to and removing from the collection. Or alternativly, its refreshing when an extender provider is added, but not when one is removed.
[Code]...
View 1 Replies
Feb 7, 2009
Is it possible to have transparency on a form but not on a button on the form?I know transparency can be controlled for the form in properties (VB 2005), but how can we isolate the button from being affected?
View 2 Replies
Dec 29, 2011
I want to try an simulate a fake lighting system in Visual Basic 2010 by using 2 images.One is Form1's background, and the other is Picturebox2's image. Picturebox2's image is a black background with a transparent circle in the middle.The only problem is, when transparent, it shows the background of the form, and looks right through the background image.How could I get around this so that the transparent part of the image is Form1's background image, and not the backcolor?
View 4 Replies
Dec 19, 2009
I am working on an application which has transparent forms. By using transparency, I am smoothing the edges of the forms. I have got a bitmap which I set as background image of the form. I use red as form's transparency key. Although transparency works fine when my computers display is set to 24 bit color, when I change the setting to 32 bits, transparency doesn't work. In this case, users who have 32 bit color dept setting on their systems will not be able to use my application. When I searched the web, I found some solutions such as using bitmap.maketransparent command, or using magenta color for transparency key or using 32 bit bmp files etc. However none of them worked for me. Some forums suggest that this is a bug and there is no way to solve this problem. But if so, why some applications such as Winamp can display transparent forms although my color dept is set to 32 bit! I am sure there is a solution. I am working on VB.NET 2008 and my OS is Windows Xp Service Pack 2. Please help me about this subject.
View 10 Replies
Jan 30, 2012
I used some code i found that extends the aero glass border across the entire form... looks great... however when i add a control (like a datagridview) it doesnt look right at all because of the transparency of the form...
View 5 Replies
Mar 20, 2011
[URL]
i hav a transparent png. i need the form also to be transparent so what i did was set the transparency key to the form back colour see what happens (it is in the pic)
View 9 Replies
Dec 17, 2005
I have just converted my first VB6 application to a VB Express version. I have a fair sized library that I would like to convert but I am having a severe problem with a very simple little game program that I selected for a trial conversion. The problem is this. I do a lot of graphic / art work in my GUI and heavily use labels with transparent backgrounds. When I converted to VB Exp 2005 the labels are no longer transparent but rather carry the background color attribute of the Form. Is this how MS implemented transparency in VB 2005? If so the product is of no use to me whatsoever. I checked the Labels attributes and they are set to transparent. But they are not being displayed as such.
View 3 Replies
Apr 10, 2009
How can i set the transparency Key in MDI parent Form?
View 1 Replies
Nov 14, 2009
I can't get the transparency key to work with the mdi child, I really need it to work as well, but I just can get it to work properly.
View 2 Replies
Sep 14, 2011
I have a custom shaped form with a transparency key of black. With the opacity set to 100%, I do not see the garbage around my custom shaped form As soon as I change the opacity, I see a transparent square(my borderless form) around my form.
How do I make it where my form retains its custom shape, and can have an opacity of less than 100%?
If you want something you've never had, you need to do something you've never done.
View 1 Replies
Feb 15, 2010
I've tried adding a splash screen ]...to one of my applications and after exploring a while I somehow managed to get it working what bugs me now is that my splash screen is in fact a image inside a picture box and the form always shows the control color behind so what I tried is adding the form color to the transparency key this worked, somehow now, I use a png image that has some transparent effect also what I've noticed is that where I would want to show the transparent effect from the image the transparent color that is set in the forum shows below is the image to get my point of view:
I'm wondering if I can remove that "pink" color (set by me in the forum) from the image .I want to get a effect like the one Adobe products have for example
View 7 Replies
Jan 26, 2010
I have seen code that uses the event:MyControl_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
and others the used: Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
Is there an advantage to using one over the other?
View 3 Replies
Nov 12, 2010
I am an intern at a company doing Drawing Tools for their program. My supervisor is currently having me just make a user control that draws a line and adds transparency over a form. (I started this internship very early, so my knowledge is very limited compared to what it should be for a standard intern)
This is what I have so far:
Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
If MyBG Is Nothing Then
MyBG = New Bitmap(Me.Width, Me.Height)
[CODE]...
View 5 Replies
Jan 18, 2011
Does anyone know what causes and more importantly how to prevent the flickering you come by when painting a control?
View 3 Replies
Apr 2, 2012
Custom control, based on ProgressBar, in design mode, resizing to larger casues VS to crash, resizing to smaller is fine. The error from the MsgBox is Parameter not valid. The line that is reported at fault is 'rRect(i) = New RectangleF(rPoints(i), rSize)'.The function below is called indirectly from 'Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)'
Private Function GetRoundPath(ByVal r As RectangleF) As GraphicsPath
Dim rPath As New GraphicsPath
Dim rPoints(4) As PointF[code]......
View 11 Replies
Nov 3, 2011
I'm developing custom .net themes, and this relies on GDI+ -- I've been able to do this mainly with a ThemeBase released on another website. Now, however, whilst inheriting another control, I am Unable to inherit the ThemeBase which means I have to design the control a little differently -- which relies on me being able to manipulate the 'OnPaint' event of the control's design.The control's 'OnPaint' event is never fired, and I don't know why. Here's the entire textbox code.[code]
View 1 Replies
Sep 2, 2010
I have a Custom Groupbox that overrides the OnPaint event to do some custom drawing, backgrounds, etc. The problem I have is that when I use it in an application and want to draw text on the control, it gets drawn first, then immediately afterwards the OnPaint from the control gets called and draws on top of the text. Is there any way to get the text drawn after the control's OnPaint?
View 1 Replies
May 15, 2012
I am working on a simple NES gaming reprogramming project (who doesn't try to program video games when they start out?) and am coming up with a goofy little error in my battle screen code. The Battle Screen is supposed to trigger and draw this form, but the thing redraws itself three or four times, creating an obvious and obnoxious triple-blink. Basically, the OnPaint event is still a bit of a mystery to me. Is there a way to reduce the amount of redraws so that it doesn't blink like it does?
Public Class Form1
Dim provider, dataFile, connString As String
Dim enemyTop, enemyLeft, enemyWidth, enemyHeight As Integer
[CODE]...
View 8 Replies
May 31, 2008
I have a parent form that has a combobox. Whn the form loads I get the data from the db and bind to the combobox. that works fine and here is the code I use in form load to cause this to happen: [code] Now if there is not an Account Type, I have a button that will pull up a small form to allow the addition of an account type. The popup form adds the data back to the database just fine, but I am now trying to get the combobox to refresh its data. So I call a public Sub that is located in the parent form to from the popup form to accomplish this task and I have walked the code and the sub is called and appears to work correctly, but the new data never appears in the combobox. Here is my public sub that i call to try and refresh the combobox on the parent form. [code] But when I go back to the parent form, the combobox is not updated with the new account. How can i get the combobox to refresh from the database with the new data?
View 4 Replies
Apr 16, 2009
I am working on VB.Net. I have a sub form with a datagridview, that is being loaded with the criteria taken from another form. Hence this form is called with parameters.
Here is the code that calls the sub form.
Code:
where ds is the dataset to fill the datagridview and rb is the string from a radio button on this form.
Here is the code in the sub form.
Code:
Now, I need to refresh this sub form every -- minutes, depending on how the user wants it to be. For this I have given a NumericUpDown control to select the mins. All this works fine. But how do I refresh the dataset and the datagridview?
View 2 Replies
May 14, 2010
How can I disable the parent form when I call a child form?This code doesn't disable the parent form like I thought it would:
frmChild.ShowDialog()
View 2 Replies
Jun 30, 2011
I would like to know the event order of form which is executed while opening form. I am showing my form using following code and the code in form_load event executes twice. Once when the form variables are initialised and second when form is displayed. I want it to execute once only. form showing code:
[Code]...
View 1 Replies
Dec 12, 2009
I login webservice then upload files then i download files i do this inside the looping in the processing i have to change the picture box picture the Timer Event fires but the picture does not changes it seems form doestn't refresh
View 9 Replies
Jun 12, 2006
I have created a simple VB.NET application with one form and a few modules. When a user clicks on a run button of the form the application starts and goes through differet cycle, while updating the user on status bar, runs for less than four hours.
The application works fine, it gives desired result. However, it is not able to refresh the user form, meaning status bar remains same after some time (it suppose to increment). Even when I take mouse on the form it shows timer symbole instead of default one.
My application commands another device using GPIB. Basically, PC running my application commands the device. If I look the display of device it gives correct information.
View 11 Replies
Oct 7, 2011
I have a form, with a datagridview. I can see the data and the related records in the DGV.I have another form that this one calls to add a new record. I need that because there are some specific parameters i need to control. But when the focus returns to the original form, I can't see the new record, even though it is there (I see it in the database).If I close the form and enter again I can see it, that is not what i want.How can I refresh the tables after the other process adds data to them?
View 2 Replies
Jun 3, 2010
I'm using Mysql database and Visual Studio 2005. I've got a form with datagridview, After making the changes in the data, it is saved in the database. The data gets saved in the database, but the modified data does not get displayed in the datagridview. Only if I close the form and open it again, the changes are displayed. I want to provide a button (refresh-button), which on clicking will refresh the datagridview, so that the modified data is displayed without closing the form.
View 8 Replies