ペースト時にChangeイベントが発生しません
対象製品
SPREAD for Windows Forms 5.0J
詳細
FpSpreadクラスのChangeイベントはユーザーがセルのデータを直接変更した後に発生するため、非編集セル状態でのペースト時にはChangeイベントは発生しません。これは製品の仕様に基づく動作です。
非編集セル状態でのペースト時にはデータモデルに変更が加えられ、DefaultSheetDataModelクラスのChangedイベントが発生します。ペーストの動作を取得する方法として当イベントを使用する方法が考えられます。
◎サンプルコード(VB)
◎サンプルコード(C#)
非編集セル状態でのペースト時にはデータモデルに変更が加えられ、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
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));
}
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));
}
関連情報
- ヘッダ部のコピーだけ有効にし、ヘッダ部への文字の貼り付けを無効にする方法
- クリップボードのデータからペースト先のセル範囲を取得する方法
- クリップボードへのコピー時に非表示の行列を除外する方法
- 【Tips】セルの値のみのカット&ペーストを実装する方法
- オペレーションモードを行選択モード(RowMode)にするとセルの値をクリップボードへコピーできません
キーワード
「クリップボード」
この文書は、以前は次のFAQ IDで公開されていました : 12998