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も見ています
-
ハマっている「お菓子」を教えて!
この世には、おいしいお菓子がありすぎて……。 次何を食べたらいいか迷っています。 みなさんが今、ハマっている「お菓子」を教えてください!
-
【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
2024年は「名探偵コナン30周年」「涼宮ハルヒ20周年」などを迎えますが、 あなたが「もうそんなに!?」と驚いた○○周年を教えてください。
-
メモのコツを教えてください!
メモを取るのが苦手です。 急いでメモすると内容がごちゃごちゃになってしまったり、ひどいときには全く読めない時もあります。
-
【お題】絵本のタイトル
【お題】 「ないた あかおに」「ねないこ だれだ」「はらぺこあおむし」みたいだけど、一体これどういう内容?と思った絵本のタイトルを教えて下さい
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
vb2008にてDefaultCellStyleが反映されない
Visual Basic(VBA)
-
DataGridViewで列、行、セルの選択
Visual Basic(VBA)
-
VB.net データーグリッドビューで余白を無くし
Visual Basic(VBA)
-
-
4
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAマクロ実行時エラーの修正に...
-
エクセルVBA 配列からセルに「...
-
【VBA】【ユーザーフォーム_Lis...
-
Excel 範囲指定スクショについ...
-
Excel UserForm の表示位置
-
DataGridViewでグリッド内に線...
-
入力規則のリスト選択
-
【ExcelVBA】値を変更しながら...
-
エクセルのカーソルを非表示に...
-
【Excel VBA】一番右端セルまで...
-
Excelで空白セル直前のセルデー...
-
下記のマクロの説明(意味)を...
-
Excel VBAでCheckboxの名前を変...
-
Excel VBA IF文がうまく動作し...
-
VBA 特定のセルからoffsetされ...
-
特定の色のついたセルを削除
-
Excel VBA でFunctionプロシジ...
-
関数の引数でrangeを指定したとき
-
Excelセル内の特定座標に画像を...
-
【VBA】写真の貼り付けコードが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAマクロ実行時エラーの修正に...
-
エクセルVBA 配列からセルに「...
-
特定の色のついたセルを削除
-
Excel UserForm の表示位置
-
Excelで空白セル直前のセルデー...
-
【VBA】【ユーザーフォーム_Lis...
-
VBA:日付を配列に入れ別セルに...
-
【Excel VBA】一番右端セルまで...
-
Excel VBAでCheckboxの名前を変...
-
EXCEL VBA 文中の書式ごと複写...
-
入力規則のリスト選択
-
DataGridViewのフォーカス遷移...
-
【VBA】写真の貼り付けコードが...
-
CellEnterイベント仕様について
-
下記のマクロの説明(意味)を...
-
飛び地セルの空白判定
-
Excel 範囲指定スクショについ...
-
C# DataGridViewで複数選択した...
-
Excel VBA IF文がうまく動作し...
-
エクセルのカーソルを非表示に...
おすすめ情報