作成日: 2015/06/29 最終更新日: 2015/09/16
文書種別
不具合
状況
修正済み
詳細
C1TrueDBGridのEditActiveプロパティを変更すると、セルの値が変更されていないにも関わらず、Changeイベントが発生します。
回避方法
この問題はバージョン2.0.20152.74または4.0.20152.74で修正されました。
修正版の適用方法については、アップデートの方法を参照してください。
修正版を適用しない場合の回避方法は次の通りです
EditActiveプロパティの変更前にChangeイベントのイベントハンドラを削除し、変更後にChangeイベントのイベントハンドラを追加します。
◎サンプルコード(VB)
◎サンプルコード(C#)
または、フラグを使用し、EditActiveプロパティの変更時にChangeイベントでの処理が行われないように実装します。
◎サンプルコード(VB)
◎サンプルコード(C#)
修正版の適用方法については、アップデートの方法を参照してください。
修正版を適用しない場合の回避方法は次の通りです
EditActiveプロパティの変更前にChangeイベントのイベントハンドラを削除し、変更後にChangeイベントのイベントハンドラを追加します。
◎サンプルコード(VB)
RemoveHandler C1TrueDBGrid1.Change, AddressOf C1TrueDBGrid1_Change
C1TrueDBGrid1.EditActive = True
AddHandler C1TrueDBGrid1.Change, AddressOf C1TrueDBGrid1_Change
C1TrueDBGrid1.EditActive = True
AddHandler C1TrueDBGrid1.Change, AddressOf C1TrueDBGrid1_Change
◎サンプルコード(C#)
c1TrueDBGrid1.Change -= new EventHandler(c1TrueDBGrid1_Change);
c1TrueDBGrid1.EditActive = True;
c1TrueDBGrid1.Change += new EventHandler(c1TrueDBGrid1_Change);
c1TrueDBGrid1.EditActive = True;
c1TrueDBGrid1.Change += new EventHandler(c1TrueDBGrid1_Change);
または、フラグを使用し、EditActiveプロパティの変更時にChangeイベントでの処理が行われないように実装します。
◎サンプルコード(VB)
Private Shared editActiveFlag As Boolean = False
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
editActiveFlag = True
C1TrueDBGrid1.EditActive = True
editActiveFlag = False
End Sub
Private Sub C1TrueDBGrid1_Change(sender As Object, e As System.EventArgs) Handles C1TrueDBGrid1.Change
If Not editActiveFlag Then
' Changeイベントの処理
End If
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
editActiveFlag = True
C1TrueDBGrid1.EditActive = True
editActiveFlag = False
End Sub
Private Sub C1TrueDBGrid1_Change(sender As Object, e As System.EventArgs) Handles C1TrueDBGrid1.Change
If Not editActiveFlag Then
' Changeイベントの処理
End If
End Sub
◎サンプルコード(C#)
private static bool editActiveFlag = false;
private void button1_Click(object sender, EventArgs e)
{
editActiveFlag = true;
c1TrueDBGrid1.EditActive = true;
editActiveFlag = false;
}
private void c1TrueDBGrid1_Change(object sender, EventArgs e)
{
if (!editActiveFlag)
{
// Changeイベントの処理
}
}
private void button1_Click(object sender, EventArgs e)
{
editActiveFlag = true;
c1TrueDBGrid1.EditActive = true;
editActiveFlag = false;
}
private void c1TrueDBGrid1_Change(object sender, EventArgs e)
{
if (!editActiveFlag)
{
// Changeイベントの処理
}
}
旧文書番号
81382