FarPoint.Win.Spread アセンブリ > FarPoint.Win.Spread.CellType 名前空間 > IEditor インタフェース : IsReservedLocation メソッド |
'Declaration
Function IsReservedLocation( _ ByVal g As Graphics, _ ByVal x As Integer, _ ByVal y As Integer, _ ByVal rc As Rectangle, _ ByVal appearance As Appearance, _ ByVal value As Object, _ ByVal zoomFactor As Single _ ) As Object
object IsReservedLocation( Graphics g, int x, int y, Rectangle rc, Appearance appearance, object value, float zoomFactor )
このメソッドが Null(VisualBasic では Nothing)を返す場合、指定した位置は通常のセル領域(つまり、シングルクリックでセルが選択され、ダブルクリックでセルが編集される)であることを示します。このメソッドが非 Null 値を返す場合、指定した位置は特別なセル領域(つまり、シングルクリックでセルが編集される)であることを示します。特別なセル領域の例には、コンボ ボックス型セルのドロップダウン ボタン、スライダー型セルのノブ、増分ボタン、コマンド ボタン型セルまたはチェック ボックス型セルの領域全体などが挙げられます。MouseMove イベントの間、特別な領域に表示するマウス ポインタを取得するため、IsReservedLocation から返された非 Null 値が GetReservedCursor に渡されます。これにより、複数の特別領域にそれぞれ異なるカーソルを表示することが可能になります。返される非 Null オブジェクトにはセル型が持つあらゆるものが考えられます。SPREADは Null か Null でないかのみをチェックします。セル型に特別な領域が複数ある場合は、マウスの下にある特別領域を示す整数または列挙値が返されます。セル型に特別な領域が1つしかない場合は、それ自体が非 Null オブジェクトとして返されます。
class CheckBoxCellType : BaseCellType
{
...
public override object IsReservedLocation(...)
{
return this;
}
public override Cursor GetReservedCursor(object o)
{
if (o != null)
return Cursors.Arrow;
else
return null;
}
...
}
注意:IsReservedLocation メソッドと GetReservedCursor メソッドは対で使用するメソッドで、一方の後に他方を呼び出します。
zoomFactor パラメータの限度については、シートの ZoomFactor プロパティを参照してください。
public static CheckBox ck = new CheckBox(); class myEditor : FarPoint.Win.Spread.CellType.IEditor { public event EventHandler EditingCanceled; public event EventHandler EditingStopped; public bool StopEditing() { if (EditingStopped != null) { EditingStopped(ck, EventArgs.Empty); base.FireEditingStopped(); return true; } else { return false; } } public void CancelEditing() { EditingCanceled(ck, EventArgs.Empty); base.FireEditingCanceled(); } public bool IsReservedKey(KeyEventArgs e) { return false; } public bool IsValid(Object value) { return true; } public Size GetPreferredSize(System.Windows.Forms.Control editor) { return editor.Size; } public Cursor GetReservedCursor(object o) { return null; } public Control GetEditorControl(FarPoint.Win.Spread.Appearance appr, float zoom) { return ck; } public object GetEditorValue() { return ck.CheckState; } public void SetEditorValue(object value) { } public object IsReservedLocation(Graphics g, int x, int y, Rectangle r, FarPoint.Win.Spread.Appearance appr, object value, float zoom) { return null; } public void StartEditing(EventArgs e, bool selectAll) { selectAll = true; } public void ShowSubEditor() { this.ShowSubEditor(); } } private void Form1_Load(object sender, System.EventArgs e) { fpSpread1.ActiveSheet.Cells[0, 0].Editor = new myEditor(); }
Shared ck As New CheckBox() Public Class myEditor Implements FarPoint.Win.Spread.CellType.IEditor Public Event EditingStopped(ByVal sender As Object, ByVal e As EventArgs) Implements FarPoint.Win.Spread.CellType.IEditor.EditingStopped Public Event EditingCancelled(ByVal sender As Object, ByVal e As EventArgs) Implements FarPoint.Win.Spread.CellType.IEditor.EditingCanceled Public Function StopEditing() As Boolean Implements FarPoint.Win.Spread.CellType.IEditor.StopEditing RaiseEvent EditingStopped(ck, EventArgs.Empty) MyBase.FireEditingStopped() Return True End Function Public Sub CancelEditing() Implements FarPoint.Win.Spread.CellType.IEditor.CancelEditing RaiseEvent EditingCancelled(ck, EventArgs.Empty) MyBase.FireEditingCanceled() End Sub Public Function IsReservedKey(ByVal e As KeyEventArgs) As Boolean Implements FarPoint.Win.Spread.CellType.IEditor.IsReservedKey Return False End Function Public Function IsValid(ByVal value As Object) As Boolean Implements FarPoint.Win.Spread.CellType.IEditor.IsValid Return True End Function Public Function GetReservedCursor(ByVal o As Object) As Cursor Implements FarPoint.Win.Spread.CellType.IEditor.GetReservedCursor Return Nothing End Function Public Function GetEditorControl(ByVal appr As FarPoint.Win.Spread.Appearance, ByVal zoom As Single) As Control Implements FarPoint.Win.Spread.CellType.IEditor.GetEditorControl Return ck End Function Public Function GetEditorValue() As Object Implements FarPoint.Win.Spread.CellType.IEditor.GetEditorValue Return ck.CheckState End Function Public Function GetPreferredSize(ByVal editor As System.Windows.Forms.Control) As Size Implements FarPoint.Win.Spread.CellType.IEditor.GetPreferredSize Return editor.Size End Function Public Sub SetEditorValue(ByVal value As Object) Implements FarPoint.Win.Spread.CellType.IEditor.SetEditorValue ck.CheckState = CheckState.Checked End Sub Public Function IsReservedLocation(ByVal g As Graphics, ByVal x As Integer, ByVal y As Integer, ByVal r As Rectangle, ByVal appr As FarPoint.Win.Spread.Appearance, ByVal value As Object, ByVal zoom As Single) As Object Implements FarPoint.Win.Spread.CellType.IEditor.IsReservedLocation Return Nothing End Function Public Sub StartEditing(ByVal e As EventArgs, ByVal selectAll As Boolean) Implements FarPoint.Win.Spread.CellType.IEditor.StartEditing selectAll = True End Sub Public Sub ShowSubEditor() Implements FarPoint.Win.Spread.CellType.IEditor.ShowSubEditor Me.ShowSubEditor() End Sub End Class Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load FpSpread1.ActiveSheet.Cells(0, 0).Editor = New myEditor() End Sub