Siticone Day of Month Picker
The SiticoneDayOfMonthPicker is a specialized UI control designed for selecting specific days within a month.
Perfect for applications managing billing cycles, subscription dates, or recurring monthly events (e.g., "Every 15th of the month").
It supports single and multiple selections, with a modern grid layout.
Data Handling
Configure how days are selected and retrieve the user's choices.
| Property | Type | Description |
|---|---|---|
SelectionMode |
DaySelectionMode |
|
SelectedDay |
int? | The currently selected day (1-31) in Single mode. Returns null if nothing is selected. |
SelectedDays |
List<int> | A list of all selected days (1-31) in Multiple mode. |
Visual Style
Customize the grid appearance to match your application's theme.
| Property | Type | Description |
|---|---|---|
GridColor |
Color | Color of the lines separating the days in the grid. |
DayCellBackColor |
Color | Background color for unselected day cells. |
DayCellForeColor |
Color | Text color for unselected day cells. |
SelectedCellBackColor |
Color | Background color for selected day cells. |
SelectedCellForeColor |
Color | Text color for selected day cells. |
HoverCellBackColor |
Color | Background color when the mouse hovers over a cell. |
Layout & Appearance
Control the physical structure of the picker.
| Property | Type | Description |
|---|---|---|
CellSize |
Size | The width and height of each individual day cell. |
CellPadding |
int | Spacing between cells. |
CornerRadius |
int | Rounding radius for the main control border. |
ShowGridLines |
bool | Toggles the visibility of grid lines between cells. |
Events
React to user selections in real-time.
// Fired when a day is selected or deselected.
dayPicker.SelectedDayChanged += (s, e) =>
{
if (dayPicker.SelectionMode == DaySelectionMode.Single)
{
Console.WriteLine($"New billing day: {dayPicker.SelectedDay}");
}
else
{
Console.WriteLine($"Selected days count: {dayPicker.SelectedDays.Count}");
}
};
Designer Support
The control includes a Smart Tag menu for quick styling.
| Category | Features |
|---|---|
Theme Presets |
Apply predefined styles: Light, Dark, Blue, Green, Purple, Sunset Orange. |
Mode Switching |
Quickly toggle between Single and Multiple selection modes. |
Data |
Copy and Paste settings between controls. |
Usage Examples
Example 1: Monthly Subscription Date
Allow a user to pick a single day of the month for their billing cycle.
private void SetupBillingPicker()
{
dayPicker.SelectionMode = DaySelectionMode.Single;
// Style to look professional
dayPicker.ApplyCorporateBlueTheme();
dayPicker.SelectedDayChanged += (s, e) =>
{
if (dayPicker.SelectedDay.HasValue)
{
lblStatus.Text = $"Billing will occur on day {dayPicker.SelectedDay} of every month.";
}
};
}
Example 2: Recurring Schedule
Select multiple days for a recurring task (e.g., "Run report on 1st, 15th, and 30th").
private void SetupReportSchedule()
{
dayPicker.SelectionMode = DaySelectionMode.Multiple;
// Pre-select common days
dayPicker.SelectedDays = new List<int> { 1, 15, 30 };
// Custom styling
dayPicker.SelectedCellBackColor = Color.Orange;
dayPicker.SelectedCellForeColor = Color.White;
}
Example 3: Dark Theme Implementation
Applying a dark theme programmatically.
private void ApplyDarkTheme()
{
dayPicker.BackColor = Color.FromArgb(30, 30, 30);
dayPicker.GridColor = Color.FromArgb(50, 50, 50);
dayPicker.DayCellBackColor = Color.FromArgb(40, 40, 40);
dayPicker.DayCellForeColor = Color.LightGray;
dayPicker.SelectedCellBackColor = Color.FromArgb(0, 120, 215);
dayPicker.SelectedCellForeColor = Color.White;
dayPicker.HoverCellBackColor = Color.FromArgb(60, 60, 60);
}