Lägg till cellkontroller i arbetsblad

Introduktion

För närvarande stödjer Aspose.Cells.GridDesktop att lägga till tre typer av cellkontroller, vilket inkluderar följande:

  • Knapp
  • Kryssruta
  • Kombinationsruta

Alla dessa kontroller härstammar från en abstrakt klass, CellControl. Varje arbetsblad innehåller en samling av Kontroller. Nya cellkontroller kan läggas till och befintliga kan kommas åt med hjälp av denna Kontroller-samling enkelt.

VIKTIGT: Om du vill lägga till cellkontroller i alla celler i en kolumn istället för att lägga till en i taget kan du hänvisa till Hantera cellkontroller i kolumner.

Lägga till en knapp

För att lägga till en knapp i arbetsbladet med Aspose.Cells.GridDesktop, följ stegen nedan:

  • Lägg till Aspose.Cells.GridDesktop-kontroll till din Form
  • Öppna valfritt Arbetsblad
  • Lägg till Knapp i Kontroller-samlingen för Arbetsbladet
// 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");

Vid tillägg av Knapp kan vi ange cellens plats (där den ska visas), bredd och höjd samt knappens text.

Händelsehantering av knapp

Vi har diskuterat att lägga till Knapp-kontroll i Arbetsbladet men vad är fördelen med att ha en knapp i arbetsbladet om vi inte kan använda den. Så här kommer behovet av händelsehantering av knappen.

För att hantera händelsen Klick av Knappen-kontrollen, tillhandahåller Aspose.Cells.GridDesktop händelsen CellButtonClick som bör implementeras av utvecklarna enligt deras behov. Till exempel har vi just visat ett meddelande när knappen klickas enligt nedan:

// 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.");
}

Ange en bakgrundsbild för knappkontrollen

Vi kan ställa in en bakgrundsbild/foto för knappkontrollen med dess etikett/text enligt koden nedan:

// 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;

VIKTIGT: Alla händelser för cellkontroller innehåller en CellControlEventArgs-argument som ger rad- och kolumnnummer för den cell som innehåller cellkontrollen (vars händelse utlöses).

Lägger till kryssruta

För att lägga till en kryssruta i arbetsbladet med hjälp av Aspose.Cells.GridDesktop, följ stegen nedan:

  • Lägg till Aspose.Cells.GridDesktop-kontroll till din Form
  • Öppna valfritt Arbetsblad
  • Lägg till CheckBox i Controls-samlingen av Arbetsbladet
// 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);

Vid läggning av CheckBox kan vi ange cellens plats (där den ska visas) och kryssrutans status.

Händelshantering av checkbox

Aspose.Cells.GridDesktop tillhandahåller en CellCheckedChanged-händelse som utlöses när kryssrutans Checked-status ändras. Utvecklare kan hantera denna händelse enligt sina krav. Till exempel har vi bara visat ett meddelande för att visa kryssrutans Checked-status i koden nedan:

// 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);
}

Lägger till Combobox

För att lägga till en combobox i arbetsbladet med hjälp av Aspose.Cells.GridDesktop, följ stegen nedan:

  • Lägg till Aspose.Cells.GridDesktop-kontroll till din Form
  • Öppna valfritt Arbetsblad
  • Skapa en array av element (eller värden) som ska läggas till i ComboBox
  • Lägg till ComboBox i Controls-samlingen av Arbetsbladet genom att ange platsen för cellen (där comboboxen ska visas) och elementen/värden som ska visas när comboboxen klickas på
// 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);

Händelshantering av Combobox

Aspose.Cells.GridDesktop tillhandahåller en CellSelectedIndexChanged-händelse som utlöses när Selected Index för comboboxen ändras. Utvecklare kan hantera denna händelse enligt sina önskemål. Till exempel har vi bara visat ett meddelande för att visa det Selected Item för comboboxen:

// 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());
}