作成日: 2015/06/09 最終更新日: 2015/09/16
文書種別
不具合
状況
修正済み
詳細
セルのデータ型を数値型に設定した場合、そのセルに入力された値を「Ctrl+X」で切り取り、他のセルに移動し編集モードを終了すると、移動前のセルが切り取り前の値になります。
回避方法
この問題はバージョン2.0.20152.74または4.0.20152.74で修正されました。
修正版の適用方法については、アップデートの方法を参照してください。
修正版を適用しない場合の回避方法は次の通りです
LeaveEditイベント時のC1FlexGrid1.Editor.TextとAfterEditイベント時のC1FlexGrid1[row, col]を比較し、
値が異なる場合、C1FlexGrid1[row, col]にC1FlexGrid1.Editor.Textを設定します。
◎サンプルコード(VB)
◎サンプルコード(C#)
修正版の適用方法については、アップデートの方法を参照してください。
修正版を適用しない場合の回避方法は次の通りです
LeaveEditイベント時のC1FlexGrid1.Editor.TextとAfterEditイベント時のC1FlexGrid1[row, col]を比較し、
値が異なる場合、C1FlexGrid1[row, col]にC1FlexGrid1.Editor.Textを設定します。
◎サンプルコード(VB)
Private tempString As String = String.Empty
Private Sub C1FlexGrid1_LeaveEdit(sender As Object, e As C1.Win.C1FlexGrid.RowColEventArgs)
If Not IsNothing(Me.C1FlexGrid1.Editor) Then
tempString = Me.C1FlexGrid1.Editor.Text
Else
tempString = String.Empty
End If
End Sub
Private Sub C1FlexGrid1_AfterEdit(sender As Object, e As C1.Win.C1FlexGrid.RowColEventArgs)
If Not IsNothing(Me.C1FlexGrid1(e.Row, e.Col)) And
Me.C1FlexGrid1(e.Row, e.Col).ToString() <> tempString Then
Me.C1FlexGrid1(e.Row, e.Col) = tempString
End If
End Sub
Private Sub C1FlexGrid1_LeaveEdit(sender As Object, e As C1.Win.C1FlexGrid.RowColEventArgs)
If Not IsNothing(Me.C1FlexGrid1.Editor) Then
tempString = Me.C1FlexGrid1.Editor.Text
Else
tempString = String.Empty
End If
End Sub
Private Sub C1FlexGrid1_AfterEdit(sender As Object, e As C1.Win.C1FlexGrid.RowColEventArgs)
If Not IsNothing(Me.C1FlexGrid1(e.Row, e.Col)) And
Me.C1FlexGrid1(e.Row, e.Col).ToString() <> tempString Then
Me.C1FlexGrid1(e.Row, e.Col) = tempString
End If
End Sub
◎サンプルコード(C#)
private string tempString = string.Empty;
private void c1FlexGrid1_LeaveEdit(object sender, RowColEventArgs e)
{
if (this.c1FlexGrid1.Editor != null)
{
tempString = this.c1FlexGrid1.Editor.Text;
}
else
{
tempString = string.Empty;
}
}
private void c1FlexGrid1_AfterEdit(object sender, RowColEventArgs e)
{
if (this.c1FlexGrid1[e.Row, e.Col] != null &&
this.c1FlexGrid1[e.Row, e.Col].ToString() != tempString)
{
this.c1FlexGrid1[e.Row, e.Col] = tempString;
}
}
private void c1FlexGrid1_LeaveEdit(object sender, RowColEventArgs e)
{
if (this.c1FlexGrid1.Editor != null)
{
tempString = this.c1FlexGrid1.Editor.Text;
}
else
{
tempString = string.Empty;
}
}
private void c1FlexGrid1_AfterEdit(object sender, RowColEventArgs e)
{
if (this.c1FlexGrid1[e.Row, e.Col] != null &&
this.c1FlexGrid1[e.Row, e.Col].ToString() != tempString)
{
this.c1FlexGrid1[e.Row, e.Col] = tempString;
}
}
旧文書番号
81347