Как программно (C#) выбрать фигуру (или диаграмму) в SpreadsheetGear?Выберите форму программно
Я пробовал:
1. IShape.select(false); // failed
2. ShapeSelection = ...; // failed
Как программно (C#) выбрать фигуру (или диаграмму) в SpreadsheetGear?Выберите форму программно
Я пробовал:
1. IShape.select(false); // failed
2. ShapeSelection = ...; // failed
IShape. Select (...) - это правильный API, необходимый для выбора формы. Я вижу, что вы прошли в false
для параметра «replace», что означает, что вы добавляете эту новую фигуру к любым другим формам, которые уже были выбраны (то есть IWorksheetWindowInfo. ShapeSelection. Count будет 2 или больше). Если вы хотите заменить текущий выбор формы, вам нужно будет вместо этого перейти в true
.
Ниже приведен пример кода, демонстрирующий выбор одной или нескольких фигур на листе и проверка этого поведения с помощью некоторых Console.WriteLine (...), но я также проверил это поведение при просмотре этих действий в интерфейсе WorkbookView SpreadsheetGear контроль:
// Create a workbook and a couple shapes on the active worksheet.
IWorkbook workbook = Factory.GetWorkbook();
IWorksheet worksheet = workbook.ActiveWorksheet;
IShape shape1 = worksheet.Shapes.AddShape(AutoShapeType.Rectangle, 5, 5, 50, 50);
IShape shape2 = worksheet.Shapes.AddShape(AutoShapeType.Oval, 75, 57, 50, 50);
// Ensure no shapes are selected.
IShapeRange shapeSelection = worksheet.WindowInfo.ShapeSelection;
Console.WriteLine($"ShapeSelection is null? {shapeSelection == null}");
// OUTPUT: ShapeSelection is null? True
// Select shape1 ("Rectangle 1")
shape1.Select(true);
shapeSelection = worksheet.WindowInfo.ShapeSelection;
Console.WriteLine($"ShapeSelection: Count={shapeSelection.Count}, Name[0]={shapeSelection[0].Name}");
// OUTPUT: ShapeSelection: Count=1, Name[0]=Rectangle 1
// Select shape2 ("Oval 2")
shape2.Select(true);
shapeSelection = worksheet.WindowInfo.ShapeSelection;
Console.WriteLine($"ShapeSelection: Count={shapeSelection.Count}, Name[0]={shapeSelection[0].Name}");
// OUTPUT: ShapeSelection: Count=1, Name[0]=Oval 2
// Select both shapes (false passed into IShape.Select(...))
shape1.Select(false);
shapeSelection = worksheet.WindowInfo.ShapeSelection;
Console.WriteLine($"ShapeSelection: Count={shapeSelection.Count}, Name[0]={shapeSelection[0].Name}, Name[1]={shapeSelection[1].Name}");
// OUTPUT: ShapeSelection: Count=2, Name[0]=Oval 2, Name[1]=Rectangle 1