- 締切済み
DataGridViewの特定列に入力されている重複チェックをしたい
VisualBasic2005です。 例えばDataGridViewの3列目にコードが入力されるとします。 その列のコードには重複入力をさせたくないのです。 重複チェックをするのは、そのセルの入力が確定したときでも、 特定のボタンが押されたときでもかまわないので、 チェックする方法はないでしょうか? よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- redfox63
- ベストアンサー率71% (1325/1856)
回答No.2
ArrayListクラスなどの配列を扱うクラスに Containsメソッドがあります これでチェックしてみてはいかがでしょう フォームクラスの変数などで Dim arCheck as New ArrayList と初期化しておき データの読み込み時点で arCheck.Add( DatatItem ) として既存のデータを配列に保存します Validatingイベントで if arCheck.Contains( 検査対象データ ) = True then e.Cancel = True else arCheck.Add( 検査対象データ ) emnd if といった具合でしょう
- NYOI
- ベストアンサー率58% (56/96)
回答No.1
そのDataGridViewはDataTableをバインドしてますか? もしそうなら、DataTableの方で重複をさせたくない列を主キーに設定すれば、重複値を入力したときエラーがでるようになります。 主キーの設定の仕方は例えば 'dtはDataTable dt.PrimaryKey = New DataColumn() {dt.Columns(2)}
お礼
さっそくの回答ありがとうございます。 今回のDataGridViewにはDataTableをバインドしておりません。 ですので、DataGridViewのCellValidatingで 入力された値と、既に入力されている値を For文を使って比べました。 効率的には良くないと思いますが、 一応出来ました。 もしDataTableをバインドしたときには、上記方法を利用させていただきます。