Class CheckboxControl
- Namespace
- SharpConsoleUI.Controls
- Assembly
- SharpConsoleUI.dll
A toggleable checkbox control that displays a label and checked/unchecked state. Supports keyboard interaction with Space or Enter keys to toggle state.
public class CheckboxControl : IInteractiveControl, IFocusableControl, IMouseAwareControl, IWindowControl, IDisposable, IDOMPaintable
- Inheritance
-
CheckboxControl
- Implements
- Inherited Members
- Extension Methods
Constructors
CheckboxControl(string, bool)
Initializes a new instance of the CheckboxControl class.
public CheckboxControl(string label = "Checkbox", bool isChecked = false)
Parameters
labelstringThe text label displayed next to the checkbox.
isCheckedboolThe initial checked state of the checkbox.
Properties
ActualWidth
Gets the actual rendered width of the control based on content.
public int? ActualWidth { get; }
Property Value
- int?
BackgroundColor
Gets or sets the background color of the checkbox in its normal state.
public Color BackgroundColor { get; set; }
Property Value
- Color
CanFocusWithMouse
Gets whether the checkbox can receive focus via mouse click. Only can focus when enabled.
public bool CanFocusWithMouse { get; }
Property Value
CanReceiveFocus
Whether this control can receive focus
public bool CanReceiveFocus { get; }
Property Value
Checked
Gets or sets the checked state of the checkbox.
public bool Checked { get; set; }
Property Value
CheckmarkColor
Gets or sets the color of the checkmark character when checked.
public Color CheckmarkColor { get; set; }
Property Value
- Color
Container
Gets or sets the parent container that hosts this control.
public IContainer? Container { get; set; }
Property Value
DisabledBackgroundColor
Gets or sets the background color when the control is disabled.
public Color DisabledBackgroundColor { get; set; }
Property Value
- Color
DisabledForegroundColor
Gets or sets the foreground color when the control is disabled.
public Color DisabledForegroundColor { get; set; }
Property Value
- Color
FocusedBackgroundColor
Gets or sets the background color when the control has focus.
public Color FocusedBackgroundColor { get; set; }
Property Value
- Color
FocusedForegroundColor
Gets or sets the foreground color when the control has focus.
public Color FocusedForegroundColor { get; set; }
Property Value
- Color
ForegroundColor
Gets or sets the foreground color of the checkbox in its normal state.
public Color ForegroundColor { get; set; }
Property Value
- Color
HasFocus
Gets or sets whether this control currently has keyboard focus.
public bool HasFocus { get; set; }
Property Value
HorizontalAlignment
Gets or sets the horizontal alignment of the control within its container.
public HorizontalAlignment HorizontalAlignment { get; set; }
Property Value
IsEnabled
Gets or sets whether the checkbox is enabled and can be interacted with.
public bool IsEnabled { get; set; }
Property Value
Label
Gets or sets the label text displayed next to the checkbox.
public string Label { get; set; }
Property Value
Margin
Gets or sets the margin around the control content.
public Margin Margin { get; set; }
Property Value
Name
Gets or sets the unique name identifier for this control, used for lookup.
public string? Name { get; set; }
Property Value
StickyPosition
Gets or sets whether this control should stick to the top or bottom during scrolling.
public StickyPosition StickyPosition { get; set; }
Property Value
Tag
Gets or sets an arbitrary object value that can be used to store custom data.
public object? Tag { get; set; }
Property Value
VerticalAlignment
Gets or sets the vertical alignment of the control within its container.
public VerticalAlignment VerticalAlignment { get; set; }
Property Value
Visible
Gets or sets whether this control is visible.
public bool Visible { get; set; }
Property Value
WantsMouseEvents
Gets whether the checkbox wants to receive mouse events. Only receives events when enabled.
public bool WantsMouseEvents { get; }
Property Value
Width
Gets or sets the fixed width of the control. When null, the control auto-sizes based on content.
public int? Width { get; set; }
Property Value
- int?
Methods
Dispose()
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
public void Dispose()
GetLogicalContentSize()
Gets the logical size of the control's content without rendering.
public Size GetLogicalContentSize()
Returns
- Size
The size representing the content's natural dimensions.
Invalidate()
Invalidates the control, forcing a re-render on the next draw.
public void Invalidate()
MeasureDOM(LayoutConstraints)
Measures the control's desired size given the available constraints.
public LayoutSize MeasureDOM(LayoutConstraints constraints)
Parameters
constraintsLayoutConstraintsThe layout constraints (min/max width/height).
Returns
- LayoutSize
The desired size of the control.
PaintDOM(CharacterBuffer, LayoutRect, LayoutRect, Color, Color)
Paints the control's content directly to a CharacterBuffer.
public void PaintDOM(CharacterBuffer buffer, LayoutRect bounds, LayoutRect clipRect, Color defaultFg, Color defaultBg)
Parameters
bufferCharacterBufferThe buffer to paint to.
boundsLayoutRectThe absolute bounds where the control should paint.
clipRectLayoutRectThe clipping rectangle (visible area).
defaultFgColordefaultBgColor
ProcessKey(ConsoleKeyInfo)
Processes a keyboard input event.
public bool ProcessKey(ConsoleKeyInfo key)
Parameters
keyConsoleKeyInfoThe key information for the pressed key.
Returns
- bool
True if the key was handled by this control; otherwise, false.
ProcessMouseEvent(MouseEventArgs)
Processes mouse events for the checkbox. Handles clicks to toggle the checked state and capture focus.
public bool ProcessMouseEvent(MouseEventArgs args)
Parameters
argsMouseEventArgs
Returns
SetFocus(bool, FocusReason)
Sets focus to this control
public void SetFocus(bool focus, FocusReason reason = FocusReason.Programmatic)
Parameters
focusboolWhether to give or remove focus
reasonFocusReasonThe reason for the focus change
Toggle()
Toggles the checked state of the checkbox.
public void Toggle()
Events
CheckedChanged
Occurs when the checked state of the checkbox changes.
public event EventHandler<bool>? CheckedChanged
Event Type
GotFocus
Event fired when the control gains focus
public event EventHandler? GotFocus
Event Type
LostFocus
Event fired when the control loses focus
public event EventHandler? LostFocus
Event Type
MouseClick
Occurs when the checkbox is clicked with the mouse.
public event EventHandler<MouseEventArgs>? MouseClick
Event Type
MouseDoubleClick
Occurs when the checkbox is double-clicked with the mouse.
public event EventHandler<MouseEventArgs>? MouseDoubleClick
Event Type
MouseEnter
Occurs when the mouse enters the checkbox area.
public event EventHandler<MouseEventArgs>? MouseEnter
Event Type
MouseLeave
Occurs when the mouse leaves the checkbox area.
public event EventHandler<MouseEventArgs>? MouseLeave
Event Type
MouseMove
Occurs when the mouse moves over the checkbox.
public event EventHandler<MouseEventArgs>? MouseMove