• 締切済み

DataGridViewの特定列に入力されている重複チェックをしたい

VisualBasic2005です。 例えばDataGridViewの3列目にコードが入力されるとします。 その列のコードには重複入力をさせたくないのです。 重複チェックをするのは、そのセルの入力が確定したときでも、 特定のボタンが押されたときでもかまわないので、 チェックする方法はないでしょうか? よろしくお願いいたします。

みんなの回答

  • 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)}

rabu_chihaha
質問者

お礼

さっそくの回答ありがとうございます。 今回のDataGridViewにはDataTableをバインドしておりません。 ですので、DataGridViewのCellValidatingで 入力された値と、既に入力されている値を For文を使って比べました。 効率的には良くないと思いますが、 一応出来ました。 もしDataTableをバインドしたときには、上記方法を利用させていただきます。

関連するQ&A