
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マクロ実行時エラーの修正に...
-
エクセルVBA 配列からセルに「...
-
【VBA】【ユーザーフォーム_Lis...
-
特定の色のついたセルを削除
-
C# DataGridViewで複数選択した...
-
EXCELのフォーム上でリアルタイ...
-
Excel VBA IF文がうまく動作し...
-
エクセル VBA ボタンをクリック...
-
[C#]DataGridViewのVirtual Mod...
-
DataGridViewのカレントセル内...
-
エクセル VBA 条件付き転記
-
入力規則のリスト選択
-
Excel VBAでCheckboxの名前を変...
-
MATLABのポップアップメニュー...
-
下記のマクロの説明(意味)を...
-
Excelで空白セル直前のセルデー...
-
DataGridViewのフォーカス遷移...
-
Excelのセルから日付情報を取得...
-
csvファイルの特定のセルから読...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel UserForm の表示位置
-
VBAマクロ実行時エラーの修正に...
-
Excelで空白セル直前のセルデー...
-
エクセルVBA 配列からセルに「...
-
特定の色のついたセルを削除
-
C# DataGridViewで複数選択した...
-
【VBA】【ユーザーフォーム_Lis...
-
データグリッドビューの結合セ...
-
【VBA】写真の貼り付けコードが...
-
VBA:日付を配列に入れ別セルに...
-
入力規則のリスト選択
-
セルの半透明着色処理
-
EXCEL VBA 文中の書式ごと複写...
-
Excel VBAでCheckboxの名前を変...
-
【ExcelVBA】値を変更しながら...
-
【Excel VBA】一番右端セルまで...
-
エクセルのカーソルを非表示に...
-
DataGridViewのフォーカス遷移...
-
DataGridViewでグリッド内に線...
-
Excel VBA でFunctionプロシジ...
おすすめ情報