C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■88633 / 親階層)  DataGridViewの不正値チェック
□投稿者/ まっさん (6回)-(2018/09/12(Wed) 13:43:46)

分類:[VB.NET/VB2005 以降] 

環境:VB2010 Windowsフォームアプリ

以下のような事を実現したいのですが、
    (1)DataGridViewにユーザーが不正な値を入力した場合はエラーアイコンを表示
    (2)セルの値が不正でなくなったら、エラーアイコンを消去

DataErrorをハンドリングして以下のようなコードで実験してみましたが、
もう一工夫したい点がいくつかあります。
(下記コードでDataGridViewのC1列にInteger以外を入力した場合の話です。)

    (a)ESCキー押下で入力をキャンセルした場合、エラーアイコンが消えない。
    (b)不正な値を入力してEnterキー押下で不正文字を選択状態にしたい。
    (c)エラーアイコンを行ヘッダに表示しているが、できればセルに表示したい。

    (c)は無理っぽい感じがしますが、上記を実現するにはどうすればいいでしょうか?

’-----------------------以下、実験コード-----------------------
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Dim dt As New DataTable
        dt.Columns.Add("C1", GetType(Integer))
        dt.Rows.Add(1)
        dt.AcceptChanges()
        DataGridView1.DataSource = dt
    End Sub
    Private Sub DataGridView1_DataError(sender As Object, e As System.Windows.Forms.DataGridViewDataErrorEventArgs) Handles DataGridView1.DataError
        DataGridView1.Rows(e.RowIndex).ErrorText = "セルの値を確認してください。"
        e.Cancel = True
    End Sub
    Private Sub DataGridView1_CellValidating(sender As Object, e As System.Windows.Forms.DataGridViewCellValidatingEventArgs) Handles DataGridView1.CellValidating
        If DataGridView1.Rows(e.RowIndex).ErrorText IsNot String.Empty Then
            DataGridView1.Rows(e.RowIndex).ErrorText = String.Empty
        End If
    End Sub

編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
親記事 →Re[1]: DataGridViewの不正値チェック /まっさん
→Re[1]: DataGridViewの不正値チェック /まっさn
 
上記関連ツリー

DataGridViewの不正値チェック / まっさん (18/09/12(Wed) 13:43) #88633 ←Now
Re[1]: DataGridViewの不正値チェック / まっさん (18/09/12(Wed) 20:21) #88637
│└ Re[2]: DataGridViewの不正値チェック / まっさん (18/09/12(Wed) 21:24) #88643 解決済み
Re[1]: DataGridViewの不正値チェック / まっさn (18/09/12(Wed) 20:17) #88636

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信