InputManセルでInputManのイベントを使用したい

文書番号 : 38991     文書種別 : 使用方法     登録日 : 2015/07/07     最終更新日 : 2015/07/07
文書を印刷する
対象製品
SPREAD for Windows Forms 8.0J
詳細
SPREADのEditModeOnイベントで編集用のコントロールを取得し、任意のイベントを関連付けることができます。

次のサンプルコードは、GcTextBox.TextChangingイベントと同じ処理をGcTextBoxEditingControl.TextChangingイベントで実装します。(GcTextBoxEditingControlクラスはGcTextBoxクラスの派生クラスです)

文字の自動変換を無効にするには、AutoConvertプロパティをFalseにしてください。

◎サンプルコード(VB)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  ' GcTextBox型セルの設定
  Dim gctc = New GrapeCity.Win.Spread.InputMan.CellType.GcTextBoxCellType()
  FpSpread1.ActiveSheet.Columns(0).CellType = gctc
End Sub

Private Sub FpSpread1_EditModeOn(sender As Object, e As EventArgs) Handles FpSpread1.EditModeOn
  ' GcTextBox型セルの編集用コントロールのTextChangingイベントの設定
  If TypeOf FpSpread1.EditingControl Is GrapeCity.Win.Spread.InputMan.CellType.GcTextBoxEditingControl Then
    Dim editor As GrapeCity.Win.Spread.InputMan.CellType.GcTextBoxEditingControl = TryCast(FpSpread1.EditingControl, GrapeCity.Win.Spread.InputMan.CellType.GcTextBoxEditingControl)
    AddHandler editor.TextChanging, AddressOf editor_TextChanging
  End If
End Sub

Private Sub FpSpread1_EditModeOff(sender As Object, e As EventArgs) Handles FpSpread1.EditModeOff
  ' GcTextBox型セルの編集用コントロールのTextChangingイベントの解除
  If TypeOf FpSpread1.EditingControl Is GrapeCity.Win.Spread.InputMan.CellType.GcTextBoxEditingControl Then
    Dim editor As GrapeCity.Win.Spread.InputMan.CellType.GcTextBoxEditingControl = TryCast(FpSpread1.EditingControl, GrapeCity.Win.Spread.InputMan.CellType.GcTextBoxEditingControl)
    RemoveHandler editor.TextChanging, AddressOf editor_TextChanging
  End If
End Sub

Private Sub editor_TextChanging(sender As Object, e As GrapeCity.Win.Spread.InputMan.CellType.TextChangingEventArgs)
  Console.WriteLine(e.Result)
End Sub


◎サンプルコード(C#)
private void Form1_Load(object sender, EventArgs e)
{
  // GcTextBox型セルの設定
  dynamic gctc = new GrapeCity.Win.Spread.InputMan.CellType.GcTextBoxCellType();
  fpSpread1.ActiveSheet.Columns[0].CellType = gctc;
}

void fpSpread1_EditModeOn(object sender, EventArgs e)
{
  // GcTextBox型セルの編集用コントロールのTextChangingイベントの設定
  if (fpSpread1.EditingControl is GrapeCity.Win.Spread.InputMan.CellType.GcTextBoxEditingControl)
  {
    GrapeCity.Win.Spread.InputMan.CellType.GcTextBoxEditingControl editor = fpSpread1.EditingControl as GrapeCity.Win.Spread.InputMan.CellType.GcTextBoxEditingControl;
    editor.TextChanging += editor_TextChanging;
  }
}

void fpSpread1_EditModeOff(object sender, EventArgs e)
{
  // GcTextBox型セルの編集用コントロールのTextChangingイベントの解除
  if (fpSpread1.EditingControl is GrapeCity.Win.Spread.InputMan.CellType.GcTextBoxEditingControl)
  {
    GrapeCity.Win.Spread.InputMan.CellType.GcTextBoxEditingControl editor = fpSpread1.EditingControl as GrapeCity.Win.Spread.InputMan.CellType.GcTextBoxEditingControl;
    editor.TextChanging -= editor_TextChanging;
  }
}

void editor_TextChanging(object sender, GrapeCity.Win.Spread.InputMan.CellType.TextChangingEventArgs e)
{
  Console.WriteLine(e.Result);
}
キーワード
セル型