mcpField
S
syncfusion-winforms-editable-listbox

syncfusion-winforms-editable-listbox

github.com/syncfusionDevelopment279 installsUpdated 1w ago
Repository

About syncfusion-winforms-editable-listbox

A guide to Syncfusion’s EditableList control for Windows Forms, combining a list box with inline editing and optional embedded controls. It covers data binding, autocomplete, themes, and editing behavior for applications with user-managed lists.

Key features

  1. 01Edit list items inline
  2. 02Bind or populate list data
  3. 03Configure embedded button, text box, and list box
  4. 04Integrate autocomplete suggestions
  5. 05Apply Metro and Office2016 styles
  6. 06Set scrolling and layout options

Use cases

  1. 01Manage editable tags
  2. 02Maintain dynamic category lists
  3. 03Edit email recipients with suggestions
  4. 04Create an inline-editable todo list

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/syncfusion/winforms-ui-components-skills --skill syncfusion-winforms-editable-listbox

After installing, type/syncfusion-winforms-editable-listboxin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
appearance-behavior.md
autocomplete-integration.md
getting-started.md
populating-editing.md
styling-themes.md

Details

From the project README

Implementing Syncfusion Windows Forms EditableList

A comprehensive guide for implementing and customizing the EditableList control - a powerful list box component that enables inline editing, item management, and rich customization options for Windows Forms applications.

When to Use This Skill

Use this skill when the user needs to:

  • Implement an EditableList control in Windows Forms applications
  • Enable inline editing of list items directly within the list box
  • Manage dynamic lists where users can add, edit, or delete items at runtime
  • Populate lists from DataSource or manual entry
  • Integrate AutoComplete functionality with the editing TextBox
  • Customize appearance including embedded controls, scrolling, and layout
  • Apply modern themes (Metro, Office2016) to the editable list
  • Handle editing events and user interactions
  • Configure dock padding and control sizing
  • Set up embedded controls (Button, TextBox, ListBox) within EditableList

The EditableList control is ideal for scenarios requiring user-editable collections, form data entry, tag management, or any interface where inline list editing improves usability.

Component Overview

The EditableList (also known as Editable ListBox) is a composite control that combines a ListBox, TextBox, and optional Button to provide inline editing capabilities. Users can select items and edit them directly within the list interface.

Key Capabilities:

  • Inline Editing: Click an item to edit it directly in-place
  • DataSource Binding: Connect to data sources or populate manually
  • Embedded Controls: Access and configure child Button, TextBox, and ListBox
  • AutoComplete Integration: Add intelligent text suggestions during editing
  • Modern Styling: Support for Metro and Office2016 themes with color schemes
  • Flexible Layout: AutoScroll, dock padding, and size configuration
  • Visual Customization: Control button visibility and appearance

Embedded Controls:

  • Button: Optional button for additional actions (controlled by WantButton property)
  • TextBox: Used for inline editing of selected items
  • ListBox: Contains the list items with full ListBox functionality

Documentation and Navigation Guide

Getting Started

📄 Read: references/getting-started.md

  • Installation and assembly deployment
  • Adding control via Visual Studio designer
  • Adding control programmatically via code
  • Required namespace imports
  • Basic initialization and setup
  • Understanding embedded controls
Populating and Editing the List

📄 Read: references/populating-editing.md

  • Populating via DataSource binding
  • Manual population through property editor
  • Runtime editing workflow
  • Item selection and inline editing process
  • ListBox.Items manipulation
  • Complete code examples (C# and VB.NET)
Appearance and Behavior Configuration

📄 Read: references/appearance-behavior.md

  • Embedded controls overview and access
  • AutoScroll configuration for large lists
  • Dock padding for layout control
  • WantButton property for button visibility
  • Control sizing and positioning
  • Practical configuration examples
AutoComplete Integration

📄 Read: references/autocomplete-integration.md

  • Setting up AutoComplete component
  • Associating AutoComplete with EditableList TextBox
  • DataSource configuration for suggestions
  • AutoCompleteModes options
  • Form load event implementation
  • Complete integration example
Styling and Theming

📄 Read: references/styling-themes.md

  • Visual styles (Default, Metro, Office2016)
  • Applying Style property
  • Office2016 color schemes (Colorful, White, DarkGray, Black)
  • Theme consistency across forms
  • Complete styling code examples

Quick Start

Basic Implementation (Designer)
  1. Add Control via Toolbox:

    • Open your form in Visual Studio designer
    • Locate EditableList in the toolbox (Syncfusion Controls section)
    • Drag and drop onto your form
    • Assemblies are added automatically
  2. Configure in Properties Window:

    • Set Size, Location, and other basic properties
    • Expand ListBox property to configure items
    • Set Style property for modern appearance
Basic Implementation (Code)
using Syncfusion.Windows.Forms.Tools;

namespace MyWinFormsApp
{
    public partial class Form1 : Form
    {
        private EditableList editableList1;
        
        public Form1()
        {
            InitializeComponent();
            SetupEditableList();
        }
        
        private void SetupEditableList()
        {
            // Create and initialize
            this.editableList1 = new EditableList();
            this.editableList1.Location = new System.Drawing.Point(20, 20);
            this.editableList1.Size = new System.Drawing.Size(300, 200);
            
            // Populate items
            this.editableList1.ListBox.Items.AddRange(new object[] {
                "Item 1",
                "Item 2", 
                "Item 3"
            });
            
            // Apply modern style
            this.editableList1.Style = Syncfusion.Windows.Forms.Appearance.Office2016;
            
            // Add to form
            this.Controls.Add(this.editableList1);
        }
    }
}
Imports Syncfusion.Windows.Forms.Tools

Public Class Form1
    Private editableList1 As EditableList
    
    Public Sub New()
        InitializeComponent()
        SetupEditableList()
    End Sub
    
    Private Sub SetupEditableList()
        ' Create and initialize
        Me.editableList1 = New EditableList()
        Me.editableList1.Location = New System.Drawing.Point(20, 20)
        Me.editableList1.Size = New System.Drawing.Size(300, 200)
        
        ' Populate items
        Me.editableList1.ListBox.Items.AddRange(New Object() {
            "Item 1",
            "Item 2",
            "Item 3"
        })
        
        ' Apply modern style
        Me.editableList1.Style = Syncfusion.Windows.Forms.Appearance.Office2016
        
        ' Add to form
        Me.Controls.Add(Me.editableList1)
    End Sub
End Class

Common Patterns

Pattern 1: DataSource Binding
// Bind to a data source
List<string> dataSource = new List<string>();
dataSource.Add("Product A");
dataSource.Add("Product B");
dataSource.Add("Product C");

this.editableList1.ListBox.DataSource = dataSource;
Pattern 2: Runtime Editing Workflow
User Interaction:
1. Click on an item to select it
2. Click again to enter edit mode (TextBox appears)
3. Edit the text in the TextBox
4. Change focus (click elsewhere, press Tab)
5. List updates automatically with edited value
Pattern 3: Enable AutoScroll for Large Lists
// Enable automatic scrollbars
this.editableList1.AutoScroll = true;
this.editableList1.AutoScrollMargin = new System.Drawing.Size(2, 2);
this.editableList1.AutoScrollMinSize = new System.Drawing.Size(3, 3);
Pattern 4: Show Button While Editing
// Display button on the right during editing
this.editableList1.WantButton = true;

// Handle button click if needed
this.editableList1.Button.Click += (s, e) => {
    MessageBox.Show("Button clicked!");
};
Pattern 5: Apply Modern Theme
// Apply Office2016 theme with color scheme
this.editableList1.Style = Syncfusion.Windows.Forms.Appearance.Office2016;
this.editableList1.Office2016ColorScheme = ScrollBarOffice2016ColorScheme.Colorful;

Key Properties and Events

Essential Properties
PropertyDescriptionExample
ListBoxAccess to embedded ListBox controleditableList1.ListBox.Items.Add("Item")
TextBoxAccess to editing TextBox controleditableList1.TextBox.Text
ButtonAccess to optional button controleditableList1.Button.Click += Handler
WantButtonShow/hide button during editingeditableList1.WantButton = true
AutoScrollEnable automatic scrollbarseditableList1.AutoScroll = true
StyleVisual appearance styleeditableList1.Style = Appearance.Office2016
DockPaddingPadding for docked controlseditableList1.DockPadding.All = 5
Common Events

Access events through embedded controls:

// ListBox events
this.editableList1.ListBox.SelectedIndexChanged += ListBox_SelectedIndexChanged;
this.editableList1.ListBox.Click += ListBox_Click;

// TextBox events
this.editableList1.TextBox.TextChanged += TextBox_TextChanged;
this.editableList1.TextBox.Leave += TextBox_Leave;

// Button events (if WantButton = true)
this.editableList1.Button.Click += Button_Click;

Common Use Cases

Use Case 1: Tag Management System

User needs to manage tags where users can add, edit, and remove tags inline. → Use DataSource binding + enable inline editing + add item selection handling

Use Case 2: Dynamic Category List

User wants a settings form where categories can be edited directly in the list. → Use manual item population + WantButton for delete functionality + style for modern UI

Use Case 3: Email Recipient List

User needs an editable list of email addresses with autocomplete suggestions. → Use AutoComplete integration + DataSource for suggestions + validation on TextBox.Leave

Use Case 4: Todo List Manager

User wants a simple todo list with inline editing capabilities. → Use basic setup + runtime editing + handle ListBox events for task completion

Use Case 5: Preferences Editor

User needs a form where users can edit configuration values in a list format. → Use DataSource binding + themed appearance + dock padding for layout

Tips and Best Practices

  1. Use DataSource for Dynamic Data: Bind to collections for automatic updates
  2. Handle TextBox.Leave Event: Validate input when editing completes
  3. Enable AutoScroll: For lists with many items to prevent overflow
  4. Apply Consistent Theming: Use the same Style across all controls in your form
  5. Access Embedded Controls: Configure Button, TextBox, ListBox for full customization
  6. Consider AutoComplete: Improves user experience for predictable inputs
  7. Test Editing Flow: Ensure click-to-edit behavior works smoothly
  8. Set Appropriate Sizes: Give adequate height for comfortable item viewing and editing

Troubleshooting

Issue: Items not editable → Ensure proper focus handling and check if TextBox is accessible

Issue: Scrollbars not appearing → Set AutoScroll = true and configure AutoScrollMinSize

Issue: Theme not applying → Verify Style property is set and Office2016ColorScheme for Office2016 style

Issue: AutoComplete not working → Check AutoComplete.SetAutoComplete() is called with correct parameters in Form_Load

Issue: Button not visible during editing → Set WantButton = true property

Comments

Markdown supported