Sphere10.Framework.Windows.Forms
3.0.3
dotnet add package Sphere10.Framework.Windows.Forms --version 3.0.3
NuGet\Install-Package Sphere10.Framework.Windows.Forms -Version 3.0.3
<PackageReference Include="Sphere10.Framework.Windows.Forms" Version="3.0.3" />
<PackageVersion Include="Sphere10.Framework.Windows.Forms" Version="3.0.3" />
<PackageReference Include="Sphere10.Framework.Windows.Forms" />
paket add Sphere10.Framework.Windows.Forms --version 3.0.3
#r "nuget: Sphere10.Framework.Windows.Forms, 3.0.3"
#:package Sphere10.Framework.Windows.Forms@3.0.3
#addin nuget:?package=Sphere10.Framework.Windows.Forms&version=3.0.3
#tool nuget:?package=Sphere10.Framework.Windows.Forms&version=3.0.3
🖼️ Sphere10.Framework.Windows.Forms
Windows Forms UI framework and component library providing data binding controls, database connection panels, validation components, and presentation utilities for desktop applications.
Sphere10.Framework.Windows.Forms enables rapid Windows desktop application development with pre-built UI components for database connectivity, data display, user input validation, and common desktop patterns.
📦 Installation
dotnet add package Sphere10.Framework.Windows.Forms
⚡ 10-Second Example
using Sphere10.Framework.Windows.Forms;
// Create a database connection panel that adapts to selected DBMS
var connectionPanel = new DatabaseConnectionPanel();
connectionPanel.SelectedDBMSType = DBMSType.SQLServer;
// Get connection string and DAC from the panel
string connectionString = connectionPanel.ConnectionString;
IDAC dac = connectionPanel.GetDAC();
🏗️ Core Concepts
Database Connection Controls: DatabaseConnectionPanel dynamically loads appropriate UI based on selected database type (SQLite, SQL Server, Firebird).
Custom Controls: Enhanced controls like PathSelectorControl, ProgressBarEx, PropertyGridEx, RadioGroupBox, and validation indicators.
Data Binding: Enhanced data binding with validation and change notification.
Wizard Framework: Multi-step wizard UI pattern implementation.
Source Grid: Advanced data grid component for tabular data display.
🔧 Core Components
DatabaseConnectionPanel
Dynamic database connection UI that loads appropriate controls based on selected provider:
using Sphere10.Framework.Windows.Forms;
using Sphere10.Framework.Data;
public class MainForm : Form {
private DatabaseConnectionPanel _connectionPanel;
public MainForm() {
InitializeComponent();
_connectionPanel = new DatabaseConnectionPanel();
// Optionally hide certain database types
_connectionPanel.IgnoreDBMS = new[] { DBMSType.FirebirdFile };
// Handle DBMS type changes
_connectionPanel.DBMSTypeChanged += OnDBMSChanged;
Controls.Add(_connectionPanel);
}
private void OnDBMSChanged(DatabaseConnectionPanel sender, DBMSType newType) {
// Panel automatically loads correct connection UI:
// - SQLServer: MSSQLConnectionPanel
// - Sqlite: SqliteConnectionPanel
// - Firebird: FirebirdConnectionPanel
// - FirebirdFile: FirebirdEmbeddedConnectionPanel
}
private async void TestConnection() {
var result = await _connectionPanel.TestConnection();
if (result.IsSuccess) {
MessageBox.Show("Connection successful!");
// Get the DAC for database operations
using var dac = _connectionPanel.GetDAC();
// Use dac...
} else {
MessageBox.Show($"Connection failed: {result.ErrorMessages.First()}");
}
}
}
PathSelectorControl
File/folder path selection with browse button:
using Sphere10.Framework.Windows.Forms;
var pathSelector = new PathSelectorControl();
pathSelector.Mode = PathSelectionMode.File; // or Folder
pathSelector.Path = @"C:\Data\file.txt";
// User can type path or browse
string selectedPath = pathSelector.Path;
ProgressBarEx
Enhanced progress bar with text display:
using Sphere10.Framework.Windows.Forms;
var progressBar = new ProgressBarEx();
progressBar.DisplayStyle = ProgressBarDisplayText.Percentage;
progressBar.Value = 75; // Shows "75%"
ValidationIndicator
Visual validation state indicator:
using Sphere10.Framework.Windows.Forms;
var validator = new ValidationIndicator();
validator.State = ValidationState.Valid; // Green checkmark
validator.State = ValidationState.Invalid; // Red X
validator.State = ValidationState.Pending; // Yellow
RadioGroupBox
Group box with built-in radio button management:
using Sphere10.Framework.Windows.Forms;
var radioGroup = new RadioGroupBox();
// Radio buttons inside are mutually exclusive
ServiceStatusControl
Display Windows service status:
using Sphere10.Framework.Windows.Forms;
var serviceStatus = new ServiceStatusControl();
serviceStatus.ServiceName = "MyService";
// Displays: Running, Stopped, Starting, etc.
🛠️ Tools.WinForms Namespace
using Tools;
// Create custom cursor from bitmap
Cursor cursor = WinForms.CreateCursor(bitmap, hotspotX, hotspotY);
// Load cursor from raw bytes
Cursor rawCursor = WinForms.LoadRawCursor(cursorBytes);
📋 Available Components
Controls
| Control | Description |
|---|---|
CheckedGroupBox |
Group box with checkbox header |
PathSelectorControl |
File/folder path selection |
ProgressBarEx |
Progress bar with text display |
PropertyGridEx |
Enhanced property grid |
RadioGroupBox |
Radio button group container |
ServiceStatusControl |
Windows service status display |
ValidationIndicator |
Visual validation state |
ExpandingCircle |
Animated expanding circle |
PictureBoxEx |
Enhanced picture box |
UserControlEx |
Enhanced user control base |
Database Components
| Component | Description |
|---|---|
DatabaseConnectionPanel |
Dynamic DBMS connection UI |
DatabaseConnectionBar |
Compact connection bar |
ConnectionPanelBase |
Base class for connection panels |
IDatabaseConnectionProvider |
Interface for connection providers |
Other
| Component | Description |
|---|---|
Wizard |
Multi-step wizard framework |
SourceGrid |
Advanced data grid |
LoadingCircle |
Loading animation |
ExplorerBar |
Explorer-style navigation bar |
AppointmentBook |
Appointment/calendar UI |
📦 Dependencies
- Sphere10.Framework: Core framework
- Sphere10.Framework.Data: Database abstraction
- System.Windows.Forms: Windows Forms (.NET built-in)
- System.Drawing: Graphics support
📖 Related Projects
- Sphere10.Framework.Windows.Forms.Sqlite - SQLite connection panel
- Sphere10.Framework.Windows.Forms.MSSQL - SQL Server connection panel
- Sphere10.Framework.Windows.Forms.Firebird - Firebird connection panel
- Sphere10.Framework.Windows - Windows platform integration
- Sphere10.Framework.Data - Database abstraction layer
✅ Status & Compatibility
- Maturity: Production-tested for Windows desktop applications
- .NET Target: .NET 8.0+ (Windows), .NET Framework 4.7+ (legacy)
- Platform: Windows only (Windows Forms)
⚖️ License
Distributed under the MIT NON-AI License.
See the LICENSE file for full details. More information: Sphere10 NON-AI-MIT License
👤 Author
Herman Schoenfeld - Software Engineer
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0-windows7.0 is compatible. net9.0-windows was computed. net10.0-windows was computed. |
-
net8.0-windows7.0
- Sphere10.Framework (>= 3.0.3)
- Sphere10.Framework.Application (>= 3.0.3)
- Sphere10.Framework.Data (>= 3.0.3)
- Sphere10.Framework.Drawing (>= 3.0.3)
- Sphere10.Framework.Windows (>= 3.0.3)
- System.Data.SqlClient (>= 4.9.0)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Sphere10.Framework.Windows.Forms:
| Package | Downloads |
|---|---|
|
Sphere10.Framework.Windows.Forms.Firebird
Windows Forms integration for Sphere10.Framework.Data.Firebird. Provides desktop UI helpers and components intended to work with Sphere10 Framework WinForms and the Firebird provider for data-driven applications. |
|
|
Sphere10.Framework.Windows.Forms.MSSQL
Windows Forms integration for Sphere10.Framework.Data.MSSQL. Provides desktop UI helpers and components intended to work with Sphere10 Framework WinForms and the SQL Server provider for data-driven applications. |
|
|
Sphere10.Framework.Windows.Forms.Sqlite
Windows Forms integration for Sphere10.Framework.Data.Sqlite. Provides desktop UI helpers and components intended to work with Sphere10 Framework WinForms and the SQLite provider for data-driven applications. |
GitHub repositories
This package is not used by any popular GitHub repositories.