[FlexGrid for WinForms] マスク文字を設定したセルで不正な入力を行い、検証が失敗しても、セルを移動できてしまう

文書番号 : 81996     文書種別 : Bug
登録日 : 2017/02/24     最終更新日 : 2017/02/24

対象製品

Studio for WinForms

ステータス

修正済み

詳細

EditMaskを設定した列で、不正な入力を行っても、カーソルで次のセルに移動できてしまいます。

(例)
・「c1FlexGrid1.Cols[1].EditMask = "0000/00/00";」を設定します。
・このセルに何も入力せず(「____/__/__」と表示されている状態)で右カーソルを押下します。
 【結果】次のセルに移動できてしまいます(不正)。
 【望まれる動作】検証結果が「不正」となるため、本来なら移動できないのが正しい動作です。

※この動作は、ビルド 4.0.20152.74(ComponentOne Studio for Windows Forms 2015Jv2)で確認されました。

回避方法

この問題はバージョン2.0.20153.110または4.0.20153.110で修正されました。
修正版の適用方法については、アップデートの方法を参照してください。


※修正版を適用しない場合の回避方法は以下の通りです。

不正な値が入力された場合、ValidateEditイベントでCancelプロパティをTrueに設定します。

◎サンプルコード(VB)
Private Sub _c1FlexGrid1_ValidateEdit(sender As Object, e As ValidateEditEventArgs)
  If e.Col = 1 Then
    If _c1FlexGrid1.Editor.Text = "____/__/__" Then
      e.Cancel = True
    End If
  End If
End Sub

◎サンプルコード(C#)
private void _c1FlexGrid1_ValidateEdit(object sender, ValidateEditEventArgs e)
{
  if (e.Col == 1)
  {
    if (_c1FlexGrid1.Editor.Text =="____/__/__")
    {
      e.Cancel = true;
    }
  }
}