作成日: 2013/10/31 最終更新日: 2013/11/20
文書種別
不具合
状況
修正済み
詳細
CellEditEndedイベントでStartEditingメソッドを実行して、その後任意の場所を2回クリックすると、ArgumentOutOfRangeException例外が発生します。
回避方法
例外が発生する問題は5.0.20133.367で修正されました。
ただし、CellEditEndedイベントでStartEditingメソッドを実行しても、編集が終了したままになります。この現象はWPF/Silverlightの実行タイミングに起因する制限事項です。
CellEditEndedイベントで再度編集を開始するには、Dispatcher.BeginInvokeメソッドを使用してStartEditingを非同期で実行する必要があります。
◎サンプルコード (Visual Basic)
◎サンプルコード (C#)
ただし、CellEditEndedイベントでStartEditingメソッドを実行しても、編集が終了したままになります。この現象はWPF/Silverlightの実行タイミングに起因する制限事項です。
CellEditEndedイベントで再度編集を開始するには、Dispatcher.BeginInvokeメソッドを使用してStartEditingを非同期で実行する必要があります。
◎サンプルコード (Visual Basic)
Private Sub c1FlexGrid1_CellEditEnded(sender As Object, e As CellEditEventArgs)
If c1FlexGrid1(e.Row, e.Column).ToString() = "" Then
MessageBox.Show("値を入力してください")
Dispatcher.BeginInvoke(Sub()
c1FlexGrid1.StartEditing(True, e.Row, e.Column)
End Sub)
End If
End Sub
If c1FlexGrid1(e.Row, e.Column).ToString() = "" Then
MessageBox.Show("値を入力してください")
Dispatcher.BeginInvoke(Sub()
c1FlexGrid1.StartEditing(True, e.Row, e.Column)
End Sub)
End If
End Sub
◎サンプルコード (C#)
private void c1FlexGrid1_CellEditEnded(object sender, CellEditEventArgs e)
{
if (c1FlexGrid1[e.Row, e.Column].ToString() == "")
{
MessageBox.Show("値を入力してください");
Dispatcher.BeginInvoke((Action)(() =
{
c1FlexGrid1.StartEditing(true, e.Row, e.Column);
}));
}
}
{
if (c1FlexGrid1[e.Row, e.Column].ToString() == "")
{
MessageBox.Show("値を入力してください");
Dispatcher.BeginInvoke((Action)(() =
{
c1FlexGrid1.StartEditing(true, e.Row, e.Column);
}));
}
}
旧文書番号
80529