DataGridViewの件で質問したいのですが。
よろしくお願いします。
VB2005で、DataGridViewの特定のセルでカーソルがとどまる(選択状態)ようにしたいのですが
思ったように動いてくれません。例えば、下のようなDataGtridViewがあったとして,
例
------------------
|ID | X | Y |
------------------
|001| 100 | |
------------------
|002| 150 | |
------------------
|003| 105 | |
------------------
ID が002の行で、Y列のセルにカーソルが入りXと違う数を入力したら、メッセージを
表示させて、そのセルにカーソルがとどまる処理を作りたいのですが。下の行のセルに
移動してしまいます。
DataGridView_CellEndEditイベントやDataGridView1_CellValueChangedなどで
カーソルがとどまる処理をしているつもりなのです下の行に移動してしまいます。
DataGridViewの初期設定の問題でしょうか?
Private Sub DataGridView1_CellValueChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellValueChanged
Dim DgvRow As Integer
'行をセット
DgvRow = e.RowIndex
' X と Yが異なれば、メッセージ表示
If DataGridView1("X", e.RowIndex).Value <> DataGridView1("Y", e.RowIndex).Value Then
MsgBox("X <> Y", MsgBoxStyle.OkOnly)
Me.DataGridView1.CurrentCell = Me.DataGridView1("Y", DgvRow)
' これも駄目だった ↓
'Me.DataGridView1.CurrentCell = Me.DataGridView1("Y", e.RowIndex - 1)
End If
End Sub
アドバイスいただけたら幸いです。よろしくお願い致します。
開発環境
VB2005
Visual Studio 2005 Standard Edition(SP1)
Windows XP Pro SP2
No.1ベストアンサー
- 回答日時:
CellValidatingイベントハンドラで処理するといいと思います。
If e.ColumnIndex <> DataGridView1.Columns("Y").Index Then Exit Sub
If DataGridView1("X", e.RowIndex).Value IsNot Nothing AndAlso _
DataGridView1.EditingControl IsNot Nothing Then
If Not DataGridView1("X", e.RowIndex).Value.ToString.Equals(DataGridView1.EditingControl.Text) Then
MsgBox("X <> Y", MsgBoxStyle.OkOnly)
e.Cancel = True
End If
End If
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) VB DataGridViewについて 3 2022/06/08 17:20
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) エクセル VBAで複数セル選択時エラーになる問題 3 2022/10/04 02:40
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) VB.net 3 2022/07/05 10:38
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
【Excel VBA】指定行以降をクリ...
-
i=cells(Rows.Count, 1)とi=cel...
-
DataGridViewの各セル幅を自由...
-
【Excel】指定したセルの名前で...
-
Excelで指定した日付から過去の...
-
EXCELで変数をペーストしたい
-
Excel vbaで特定の文字以外が入...
-
Sub 要具ライフ() ActiveSheet....
-
Excel VBA、 別ブックの最終行...
-
【EXCEL VBA】Range("A:A").Fi...
-
特定の文字を条件に行挿入とそ...
-
指定文字以外のカウント
-
VBA実行後に元のセルに戻りたい
-
連続する複数のセル値がすべて0...
-
VBAでセルに値が入ったときにイ...
-
Word版VBで表の任意の箇所を...
-
screenupdatingが機能しなくて...
-
Excelのハイパーリンクにマクロ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
i=cells(Rows.Count, 1)とi=cel...
-
【Excel VBA】指定行以降をクリ...
-
Excelで指定した日付から過去の...
-
【Excel】指定したセルの名前で...
-
Excel vbaで特定の文字以外が入...
-
特定の文字を条件に行挿入とそ...
-
TODAY()で設定したセルの日付...
-
screenupdatingが機能しなくて...
-
Excelのプルダウンで2列分の情...
-
EXCELで変数をペーストしたい
-
連続する複数のセル値がすべて0...
-
Excel VBA、 別ブックの最終行...
-
VBAを使用した時間管理
-
エクセルVBAでコピーして順...
-
セル色なしの行一括削除
-
【EXCEL VBA】Range("A:A").Fi...
-
VBA コピーして次の値まで貼り...
-
VBA初心者です。結合セルを保持...
おすすめ情報