0

I know how to create a fadeIn/Out winform.

The problem is, I don't know how to create a Custom Control which will lose its full transparency when mouse leaves its area and gets transparent when mouse gets back on it.

A Custom Control doesn't have Opacity and TransparentKey properties.

This tutorial explains how to add Opacity property to a User Control.

public UserControl1()
{
    InitializeComponent();
    // Enables support for transparent back color for inner controls.
    SetStyle(ControlStyles.SupportsTransparentBackColor, true);
}
// This enables transparent backgrounds for the control.
protected override CreateParams CreateParams
{
    get
    {
        CreateParams cp = base.CreateParams;
        cp.ExStyle |= 0x20;
        return cp;
    }
}
// A property to adjust the opacity level.
private int _opacity = 255;
[Description("Set opacity of control. 0 to 255")]
public int Opacity
{
    get
    {
        return this._opacity;
    }
    set
    {
        this._opacity = value;
        this.Refresh();
    }
}
// Override default OnPaintBackground event.
protected override void  OnPaintBackground(PaintEventArgs e)
{
    e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(this.Opacity, this.BackColor)), this.ClientRectangle);
}

But it doesn't work on my Custom Control or I just don't know how to use it.

By FadeIn/Out, I mean a control which gets transparent when mouse leave it until user points back to it

Siyual
  • 16,415
  • 8
  • 44
  • 58
Ghasem
  • 14,455
  • 21
  • 138
  • 171

0 Answers0