Добавление элементов управления ячейками в листах
Введение
В настоящее время Aspose.Cells.GridDesktop поддерживает добавление трех типов элементов управления ячейками, включая следующее:
- Кнопка
- Флажок
- Комбобокс
Все эти элементы управления происходят от абстрактного класса CellControl. Каждый лист содержит коллекцию Controls. Новые элементы управления ячейками могут быть добавлены, а существующие могут быть обращены к этой коллекции Controls легко.
ВАЖНО: Если вы хотите добавить элементы управления ячейками для всех ячеек столбца, а не по одному, то вы можете обратиться к Управление элементами управления ячейками в столбцах.
Добавление кнопки
Чтобы добавить кнопку на лист с помощью Aspose.Cells.GridDesktop, выполните следующие шаги:
- Добавьте элемент управления Aspose.Cells.GridDesktop на вашу форму
- Обратитесь к любому желаемому листу
- Добавьте Кнопку в коллекцию Элементы управления данного Листа
При добавлении Кнопки мы можем указать местоположение ячейки (где отображать), ширину и высоту, а также подпись кнопки.
Обработка событий кнопки
Мы говорили о добавлении элемента управления Кнопка на Листе, но какова польза от наличия кнопки на листе, если мы не можем ее использовать. Поэтому возникает необходимость обработки событий кнопки.
Для обработки события Нажатие элемента управления Кнопка, Aspose.Cells.GridDesktop предоставляет событие НажатиеЯчейкиКнопки, которое должно быть реализовано разработчиками в соответствии с их потребностями. Например, мы только выводим сообщение, когда кнопка нажата, как показано ниже:
Указание Фонового Изображения для Элемента управления Кнопка
Мы можем установить фоновое изображение/картинку для элемента управления кнопкой с ее меткой/текстом, как показано в коде ниже:
// 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; |
ВАЖНО: Все события элементов управления ячейками содержат аргументы СобытиеЭлементаУправленияЯчейкой которые предоставляют номера строки и столбца ячейки, в которой содержится элемент управления ячейкой (событие которого было вызвано).
Добавление Флажка
Чтобы добавить флажок на лист с помощью Aspose.Cells.GridDesktop, выполните следующие шаги:
- Добавьте элемент управления Aspose.Cells.GridDesktop на вашу форму
- Обратитесь к любому желаемому листу
- Добавьте Флажок в коллекцию Элементы управления данного Листа
// 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); |
При добавлении Флажка мы можем указать местоположение ячейки (где отображать) и состояние флажка.
Обработка событий флажка
Aspose.Cells.GridDesktop предоставляет событие ИзменениеПроверкиЯчейки которое срабатывает, когда состояние проверки флажка изменяется. Разработчики могут обрабатывать это событие в соответствии со своими требованиями. Например, мы только выводим сообщение, чтобы показать состояние проверки флажка в коде ниже:
// 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); | |
} |
Добавление Полей Выбора
Чтобы добавить комбобокс в таблицу с использованием Aspose.Cells.GridDesktop, выполните следующие шаги:
- Добавьте элемент управления Aspose.Cells.GridDesktop на вашу форму
- Обратитесь к любому желаемому листу
- Создайте массив элементов (или значений), которые будут добавлены в комбобокс
- Добавьте комбобокс в коллекцию элементов управления листа, указав местоположение ячейки (где будет отображаться комбобокс) и элементы/значения, которые будут отображаться при нажатии на комбобокс
// 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); |
Обработка событий комбобокса
Aspose.Cells.GridDesktop предоставляет событие CellSelectedIndexChanged, которое срабатывает, когда выбранный индекс комбобокса изменяется. Разработчики могут обрабатывать это событие по своему усмотрению. Например, можно отобразить сообщение, чтобы показать выбранный элемент комбобокса:
// 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()); | |
} |