
DataGridViewの件で質問したいのですが。
よろしくお願いします。
VB2005で、DataGridViewの特定のセルが選択されて値が青色反転した
Selectイベントのような状態にしたいのですが。
例えば、下のようなDataGtridViewがあったとして,
例
------------------
|ID | X | Y |
------------------
|001| 100 | |
------------------
|002| 150 | |
------------------
|003| 105 | |
------------------
ID が002の行で、Y列のセルにカーソルが入りXと違う数を入力したら、メッセージを
表示させて、そのセルを青色反転させる処理を作りたいのですが。下の行のセルに
移動してしまいます。
そこで下記のようなコードを書きました。
Private Sub DataTable1DataGridView_CellValidating(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellValidatingEventArgs) Handles DataTable1DataGridView.CellValidating
If e.ColumnIndex <> Me.DataTable1DataGridView.Columns("Y").Index Then Exit Sub
If Me.DataTable1DataGridView("X", e.RowIndex).Value IsNot Nothing AndAlso _
Me.DataTable1DataGridView.EditingControl IsNot Nothing Then
If Not Me.DataTable1DataGridView("X", e.RowIndex).Value.ToString.Equals(Me.DataTable1DataGridView.EditingControl.Text) Then
MsgBox("X <> Y", MsgBoxStyle.OkOnly)
Me.DataTable1DataGridView.BeginEdit(True)
'e.Cancel = True
End If
End If
End Sub
e.cancel = True だとセルにはとどまりますが。セルが選択状態にはなりません。
BeginEdit(True)を使うと下のセルが選択状態になります。
アドバイスいただけたら幸いです。よろしくお願い致します。
開発環境
VB2005
Visual Studio 2005 Standard Edition(SP1)
Windows XP Pro SP2

No.1ベストアンサー
- 回答日時:
文字列判定のIf文の中身を以下のように書き換えてください。
If Not Me.DataTable1DataGridView("X", e.RowIndex).Value.ToString.Equals(Me.DataTable1DataGridView.EditingControl.Text) Then
MsgBox("X <> Y", MsgBoxStyle.OkOnly)
e.Cancel = True
'セルを反転表示↓↓
Me.DataTable1DataGridView.EndEdit()
'文字列のみを反転
'CType(Me.DataTable1DataGridView.EditingControl, TextBox).SelectAll()
End If
不要かと思いますが、編集状態で文字列のみを全選択状態にする場合もコメントで足しておきました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel UserForm の表示位置
-
VBAマクロ実行時エラーの修正に...
-
C# DataGridViewで複数選択した...
-
エクセルVBA 配列からセルに「...
-
【VBA】【ユーザーフォーム_Lis...
-
[Excel VBA] このコードでは行...
-
Excelで空白セル直前のセルデー...
-
入力規則のリスト選択
-
VBAについて
-
エクセル VBA ボタンをクリック...
-
【ExcelVBA】値を変更しながら...
-
VBAを用いた散布図グラフの線種...
-
エクセルのカーソルを非表示に...
-
EXCEL VBA 文中の書式ごと複写...
-
Excel VBAでCheckboxの名前を変...
-
特定の色のついたセルを削除
-
Excel 範囲指定スクショについ...
-
QRコード作成マクロについて
-
下記のマクロの説明(意味)を...
-
エクセルVBA 郵便番号の書式判...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel UserForm の表示位置
-
VBAマクロ実行時エラーの修正に...
-
特定の色のついたセルを削除
-
Excelで空白セル直前のセルデー...
-
エクセルVBA 配列からセルに「...
-
【VBA】【ユーザーフォーム_Lis...
-
【VBA】写真の貼り付けコードが...
-
データグリッドビューの結合セ...
-
複数指定セルの可視セルのみを...
-
エクセル、マクロで番号を読込...
-
CellEnterイベント仕様について
-
C# DataGridViewで複数選択した...
-
【ExcelVBA】値を変更しながら...
-
EXCEL VBA 文中の書式ごと複写...
-
マクロ初心者です。 マクロで範...
-
【Excel VBA】一番右端セルまで...
-
【Excel VBA】マクロで書き込ん...
-
VBA:日付を配列に入れ別セルに...
-
DataGridViewでグリッド内に線...
-
DataGridViewのフォーカス遷移...
おすすめ情報