Skip to content

Instantly share code, notes, and snippets.

@CamelCaseName
Created July 24, 2023 18:14
Show Gist options
  • Save CamelCaseName/61162de2531a93d43cffce589008d8ef to your computer and use it in GitHub Desktop.
Save CamelCaseName/61162de2531a93d43cffce589008d8ef to your computer and use it in GitHub Desktop.
C# Winforms Button that can be toggled
using System.Drawing;
using System.Windows.Forms;
namespace CustomComponents
{
public class ToggleButton : Button
{
public Color SecondBackColor = Color.FromKnownColor(KnownColor.Highlight);
private Color BackgroundColor = DefaultBackColor;
private bool isToggled = false;
private bool ColorLock = false;
public ToggleButton()
{
Click += (sender, e) =>
{
isToggled = !isToggled;
ColorLock = true;
BackColor = isToggled ? SecondBackColor : BackgroundColor;
ColorLock = false;
};
}
public new Color BackColor
{
get => BackgroundColor;
set => _ = ColorLock ? base.BackColor = value : BackgroundColor = base.BackColor = value;
}
public bool IsChecked => isToggled;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment