You can use layered Windows
Using a multilayer window can significantly improve the performance and visual effects for a window that has a complex shape, animates its shape, or wishes to use alpha blending effects. The system automatically creates and redraws layered windows and windows of the main applications. As a result, multilayer windows are displayed smoothly, without the flicker characteristic of complex areas of the window. In addition, laminated windows may be partially translucent, i.e. alpha mixed.
Create a layered window in Windows Forms
Here is the code from the MSDN code gallery that demonstrates the creation of layered Windows in Windows Forms. It allows you to create a curly splash screen and move it with the mouse.
Add PerPixelAlphaForm to the project, and then enough to inherit from this form, call it SelectBitmap and pass the png method to create a layered window.

PerPixelAlphaForm.cs
#region Using directives using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Drawing.Imaging; using System.Runtime.InteropServices;
SplashScreen.cs
public partial class Form4 : CSWinFormLayeredWindow.PerPixelAlphaForm { public Form4() { InitializeComponent(); this.SelectBitmap(Properties.Resources.splash); } }
Note
The original answer was based on turning off the double buffer and overriding OnPaintBackground and drawing the image without calling the base method. The answer had a known problem; although the form was motionless, it worked well, but if the form moved or the window behind the form changed, the window was not updated. You can see the previous code in revisions. Current editing, based entirely on MSDN code, has no known issues.
source share