Back to Devexpress

ListBoxFormControl Interface

officefileapi-devexpress-dot-spreadsheet-6d279fe9.md

latest6.8 KB
Original Source

ListBoxFormControl Interface

List box form control.

Namespace : DevExpress.Spreadsheet

Assembly : DevExpress.Spreadsheet.v25.2.Core.dll

NuGet Package : DevExpress.Spreadsheet.Core

Declaration

csharp
public interface ListBoxFormControl :
    FormControl,
    Shape,
    FloatingObject,
    ShapeFormatBase,
    DataSelectorFormControl,
    LinkedCellFormControl,
    ShadedFormControl
vb
Public Interface ListBoxFormControl
    Inherits FormControl,
             Shape,
             FloatingObject,
             ShapeFormatBase,
             DataSelectorFormControl,
             LinkedCellFormControl,
             ShadedFormControl

The following members return ListBoxFormControl objects:

Remarks

Create a List Box Form Control

The code sample below creates a list box control:

csharp
using DevExpress.Spreadsheet;

Workbook workbook = new Workbook();
workbook.LoadDocument("Document.xlsx");
var cellRange = spreadsheetControl.Document.Worksheets[0].Range["B2:D2"];
var listBoxControl = formControls.AddListBox(cellRange);
listBoxControl.DropDownLines = 3;
listBoxControl.SourceRange = spreadsheetControl.Document.Worksheets[0].Range["E2:E6"];
listBoxControl.SelectedIndex = 1;
vb
Imports DevExpress.Spreadsheet

Dim workbook As New Workbook()
workbook.LoadDocument("Document.xlsx")
Dim cellRange = spreadsheetControl.Document.Worksheets(0).Range("B2:D2")
Dim listBoxControl = formControls.AddListBox(cellRange)
listBoxControl.DropDownLines = 3
listBoxControl.SourceRange = spreadsheetControl.Document.Worksheets(0).Range("E2:E6")
listBoxControl.SelectedIndex = 1

Note

The FormControlCollection.AddListBox method call adds a new item to both FormControlCollection and ShapeCollection.

Obtain List Box Form Controls

The Worksheet.FormControls property obtains all form controls in a worksheet. You can use one of the following ways to obtain a specific form control:

The FormControl.Id and FormControl.Name properties return the form control’s identifier and name.

Modify Check List Box Form Controls

Use the ListBoxFormControl class properties to change list box parameters. The code sample below obtains all list boxes and enables 3D shading and multiple selection:

csharp
using DevExpress.Spreadsheet;
using System.Linq;

Workbook workbook = new Workbook();
workbook.LoadDocument("Document.xlsx");

var formControls = workbook.Worksheets[0].FormControls;

var listBoxes = formControls.Where(formControl => formControl.FormControlType == FormControlType.ListBox).Cast<ListBoxFormControl>();
foreach (ListBoxFormControl listBox in listBoxes) {
    listBox.Shading3D = true;
    listBox.SelectionMode = FormControlSelectionMode.Extended;
}
vb
Imports DevExpress.Spreadsheet
Imports System.Linq

Private workbook As New Workbook()
workbook.LoadDocument("Document.xlsx")

Dim formControls = workbook.Worksheets(0).FormControls

Dim checkBoxes = formControls.Where(Function(formControl) formControl.FormControlType = FormControlType.ListBox).Cast(Of ListBoxFormControl)()
For Each listBox As ListBoxFormControl In listBoxes
  listBox.Shading3D = True
  listBox.SelectionMode = FormControlSelectionMode.Extended
Next listBox

Remove List Box Form Controls

Call the FormControlCollection.Remove or FormControlCollection.RemoveAt method to remove a form control. The FormControlCollection.Clear() method removes all form controls from a worksheet.

The code sample below removes all list boxes from a worksheet:

csharp
Workbook workbook = new Workbook();
workbook.LoadDocument("Document.xlsx");

var formControls = workbook.Worksheets[0].FormControls;

for (int i = formControls.Count - 1; i >= 0; i--) {
    if (formControls[i].FormControlType == FormControlType.ListBox)
        formControls.RemoveAt(i);
}
vb
Dim workbook As New Workbook()
workbook.LoadDocument("Document.xlsx")

Dim formControls = workbook.Worksheets(0).FormControls

For i As Integer = formControls.Count - 1 To 0 Step -1
  If formControls(i).FormControlType = FormControlType.ListBox Then
    formControls.RemoveAt(i)
  End If
Next i

Limitations

The Form Control API subset ships with the following list box limitations:

  • You cannot change list box value in the Spreadsheet Control for WinForms and WPF
  • Spreadsheet Control for WinForms and WPF does not display list box values from a source range
  • ShapeFormatBase.Fill, ShapeFormatBase.Outline, and ShapeText property returns null for ListBoxFormControl.

See Also

ListBoxFormControl Members

DevExpress.Spreadsheet Namespace