2017-01-27 31 views
1

SpreadsheetGearでプログラムで(C#)図形または図形を選択するにはどうすればよいですか?プログラムで図形を選択

私が試してみました:

1. IShape.select(false); // failed 
2. ShapeSelection = ...; // failed 

答えて

1

IShapeを。 Select(...)は、シェイプを選択するために必要な正しいAPIです。 「replace」パラメータにfalseが渡されていることがわかります。つまり、既に選択されている他の図形にこの新しい図形を追加しています(つまり、IWorksheetWindowInfoShapeSelectionCountは2以上になります)。現在の形状選択を置き換える場合は、代わりにtrueを渡す必要があります。

以下は、シート上の1つ以上のシェイプを選択し、この動作をConsole.WriteLine(...)で確認するサンプルコードですが、SpreadsheetGearのWorkbookView UI制御:

// 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 
関連する問題