Adding Cell Controls in Worksheets

Introduction

Currently, Aspose.Cells.GridDesktop support adding three types of cell controls, which include the following:

  • Button
  • CheckBox
  • ComboBox

All of these controls are derived from an abstract class, CellControl. Each worksheet contains a collection of Controls. New cell controls can be added and existing ones can be accessed using this Controls collection easily.

IMPORTANT: If you want to add cell controls to all cells of a column instead of adding one by one then you can refer to Managing Cell Controls in Columns.

Adding Button

To add a button into the worksheet using Aspose.Cells.GridDesktop, please follow the steps below:

  • Add Aspose.Cells.GridDesktop control to your Form
  • Access any desired Worksheet
  • Add Button to the Controls collection of the Worksheet
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Accessing the worksheet of the Grid that is currently active
Worksheet sheet = gridDesktop1.GetActiveWorksheet();
// Accessing the location of the cell that is currently in focus
CellLocation cl = sheet.GetFocusedCellLocation();
// Adding button to the Controls collection of the Worksheet
Aspose.Cells.GridDesktop.Button button = sheet.Controls.AddButton(cl.Row, cl.Column, 80, 20, "Button");

While adding Button , we can specify the cell’s location (where to display it), width & height and the caption of the button.

Event Handling of Button

We have discussed about adding Button control to the Worksheet but what is the advantage of just having a button in the worksheet if we cannot use it. So, here comes the need of event handling of the button.

To handle the Click event of the Button control, Aspose.Cells.GridDesktop provides CellButtonClick event that should be implemented by the developers according to their needs. For an instance, we have just displayed a message when the button is clicked as shown below:

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Implenting CellButtonClick event handler
private void gridDesktop1_CellButtonClick(object sender, CellControlEventArgs e)
{
// Displaying the message when button is clicked
MessageBox.Show("Button is clicked.");
}

Specifying a Background Image for the Button Control

We can set background image/picture for the button control with its label/text as shown in the code below:

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = Utils.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Set the image.
Image image = Image.FromFile(dataDir + @"AsposeLogo.jpg");
button.Image = image;

IMPORTANT: All events of cell controls contain a CellControlEventArgs argument that provides the row and column numbers of the cell that contains the cell control (whose event is triggered).

Adding CheckBox

To add a checkbox into the worksheet using Aspose.Cells.GridDesktop, please follow the steps below:

  • Add Aspose.Cells.GridDesktop control to your Form
  • Access any desired Worksheet
  • Add CheckBox to the Controls collection of the Worksheet
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Accessing the worksheet of the Grid that is currently active
Worksheet sheet = gridDesktop1.GetActiveWorksheet();
// Accessing the location of the cell that is currently in focus
CellLocation cl = sheet.GetFocusedCellLocation();
// Adding checkbox to the Controls collection of the Worksheet
sheet.Controls.AddCheckBox(cl.Row, cl.Column, true);

While adding CheckBox , we can specify the cell’s location (where to display it) and state of the checkbox.

Event Handling of CheckBox

Aspose.Cells.GridDesktop provides CellCheckedChanged event that is triggered when the Checked state of the checkbox is changed. Developers can handle this event according to their requirements. For an instance, we have just displayed a message to show the Checked state of the checkbox in the code below:

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Implenting CellCheckedChanged event handler
private void gridDesktop1_CellCheckedChanged(object sender, CellControlEventArgs e)
{
// Getting the reference of the CheckBox control whose event is triggered
Aspose.Cells.GridDesktop.CheckBox check = (Aspose.Cells.GridDesktop.CheckBox)gridDesktop1.GetActiveWorksheet().Controls[e.Row, e.Column];
// Displaying the message when the Checked state of CheckBox is changed
MessageBox.Show("Current state of CheckBox is " + check.Checked);
}

Adding ComboBox

To add a combobox into the worksheet using Aspose.Cells.GridDesktop , please follow the steps below:

  • Add Aspose.Cells.GridDesktop control to your Form
  • Access any desired Worksheet
  • Create an array of items (or values) that will be added to ComboBox
  • Add ComboBox to the Controls collection of the Worksheet by specifying the location of cell (where combobox will be displayed) and the items/values that will be displayed when the combobox will be clicked
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Accessing the worksheet of the Grid that is currently active
Worksheet sheet = gridDesktop1.GetActiveWorksheet();
// Accessing the location of the cell that is currently in focus
CellLocation cl = sheet.GetFocusedCellLocation();
// Creating an array of items or values that will be added to combobox
string[] items = new string[3];
items[0] = "Aspose";
items[1] = "Aspose.Grid";
items[2] = "Aspose.Grid.Desktop";
// Adding combobox to the Controls collection of the Worksheet
sheet.Controls.AddComboBox(cl.Row, cl.Column, items);

Event Handling of ComboBox

Aspose.Cells.GridDesktop provides CellSelectedIndexChanged event that is triggered when the Selected Index of combobox is changed. Developers can handle this event according to their desires. For an instance, we have just displayed a message to show the Selected Item of the combobox:

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Implenting CellSelectedIndexChanged event handler
private void gridDesktop1_CellSelectedIndexChanged(object sender, CellComboBoxEventArgs e)
{
// Getting the reference of the ComboBox control whose event is triggered
Aspose.Cells.GridDesktop.ComboBox combo =
(Aspose.Cells.GridDesktop.ComboBox)gridDesktop1.GetActiveWorksheet().Controls[e.Row, e.Column];
// Displaying the message when the Selected Index of ComboBox is changed
MessageBox.Show(combo.Items[combo.SelectedIndex].ToString());
}