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
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]......
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]
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?
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
What are the behaviors difference for the Previous Property of Other1 and Other2 Class.Note than the return type of the ovrloaded Previous Property of Other2 as bean changed to Other2 while it stay as Base for Other1.
Public Class Base Private _Previous as Base Protected Overridable ReadOnly Property Previous As Base
Currently im trying to write a HotKey class, however in order to intercept the messages you need to overwrite the WndProc and check for WM_HOTKEY.
Currently, im using Inherits Form inside of the class, so that it has the option of overwriding the wndproc, but along with that I get all the forms normal events when trying to handle it.
Below is my
Public Class Form1 Private Class HotKey Inherits Form
I'm unable to find out how to do this, so either it's not possible or I'm using the wrong keywords.
Basically, I want to add something to my base class method (Overridable), so that when a derived class Overrides it, some comments appear along with the "MyBase.MethodName".
Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs) MyBase.OnPaint(e)
'Add your custom paint code here End Sub I want to have my own equivalent of "Add your custom paint code here".
I have this class Public Class DGVMod Inherits DataGridView
Protected Overrides Sub OnEditingControlShowing(ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) MyBase.OnEditingControlShowing(e) Try
when we have a method of a derived class implementing a method of an interface which is already implemented in the base class, the compiler throws a warning (by default). when i see a warning i will try to erase it and the only way to erase this warning is to mess with the settings of the compiler hence i hope that there is a way to declare "how" a method implements an interface's method. by this i meant that we should be able to declare overridable, overrides and shadows for the implements keyword. hence if we declare overridable-implement for a method of a base class implementing an interface's method, the compiler should give no warnings when we override this implementation (re-implementing in a derived class). Similarly, if the method of the base class implementing an itnerface's method was not declared as ovveridable-implement, the derived class should be able to Shadow the implementation example code which flags unnecessary warning:
I am trying a example codes of animated graphics. I rewrote all the code and I found an error which doesn't happen on the example code(I run the example project)
error: 'Protected Overrides Sub Dispose(disposing As Boolean)' has multiple definitions with identical signatures.
when I double clicked the error, I got this in Form1.Designer.vb:
'Form overrides dispose to clean up the component list. <System.Diagnostics.DebuggerNonUserCode()> _ Protected Overrides Sub Dispose(ByVal disposing As Boolean)
I am cleaning up some code and I have multiple classes that are 99% exactly the same. So my understanding is that my options are...
1. Create a class and all other classes inherit from it and modify it a bit
2. Create an abstract class and all classes inherit from it and modify a bit ** I took this route
3. Create an interface and all classes Implement that interface.
Here is my 'original' class below (the one that all of them look 99% identical). This class is used in an arraylist so I have a listing of all my images from a folder I have searched.
I have a base class (ex: Class1) containing a list of another base class (ex: ClassA). Each child class of first base class (ex: Class1AA, Class1AB,..) containing a list of child class of second base class (ex: ClassAA, ClassAB,...)The client must never know which child class is using, then i don't think i can use generic for my bases classes.I try something like this and many more, but i always received errors..Imports System.Collections.Generic