ペースト時にChangeイベントが発生しません

文書番号 : 28821     文書種別 : 使用方法     最終更新日 : 2015/03/05
文書を印刷する
対象製品
SPREAD for Windows Forms 5.0J
詳細
FpSpreadクラスのChangeイベントはユーザーがセルのデータを直接変更した後に発生するため、非編集セル状態でのペースト時にはChangeイベントは発生しません。これは製品の仕様に基づく動作です。

非編集セル状態でのペースト時にはデータモデルに変更が加えられ、DefaultSheetDataModelクラスのChangedイベントが発生します。ペーストの動作を取得する方法として当イベントを使用する方法が考えられます。

◎サンプルコード(VB)
Dim WithEvents datamodel As FarPoint.Win.Spread.Model.DefaultSheetDataModel

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  datamodel = CType(FpSpread1.ActiveSheet.Models.Data, FarPoint.Win.Spread.Model.DefaultSheetDataModel)
End Sub

Private Sub datamodel_Changed(ByVal sender As Object, ByVal e As FarPoint.Win.Spread.Model.SheetDataModelEventArgs) Handles datamodel.Changed
  Console.WriteLine(String.Format("Row={0} Column={1} Value={2} Type={3}", e.Row, e.Column, datamodel.GetValue(e.Row, e.Column), e.Type))
End Sub

◎サンプルコード(C#)
FarPoint.Win.Spread.Model.DefaultSheetDataModel datamodel;

private void Form1_Load(object sender, EventArgs e)
{
  datamodel = (FarPoint.Win.Spread.Model.DefaultSheetDataModel)fpSpread1.ActiveSheet.Models.Data;
  datamodel.Changed += new FarPoint.Win.Spread.Model.SheetDataModelEventHandler(this.datamodel_Changed);
}

private void datamodel_Changed(object sender, FarPoint.Win.Spread.Model.SheetDataModelEventArgs e)
{
  Console.WriteLine(String.Format("Row={0} Column={1} Value={2} Type={3}", e.Row, e.Column, datamodel.GetValue(e.Row, e.Column), e.Type));
}
関連情報
キーワード
「クリップボード」

この文書は、以前は次のFAQ IDで公開されていました : 12998