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