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

わんくま同盟

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

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

■88636 / 1階層)  DataGridViewの不正値チェック
□投稿者/ まっさn (1回)-(2018/09/12(Wed) 20:17:59)
No88633 (まっさん さん) に返信
> 環境: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
編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←DataGridViewの不正値チェック /まっさん 返信無し
 
上記関連ツリー

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

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