• ベストアンサー

DataGridViewのカーソル

VB 2005を使っています。 DataGridViewを初期化した際に、ディフォルト状態ではカーソルが先頭行の 先頭カラムに移動します。 またその背景色が青っぽい色となっています。 ここで希望なんですが、カーソルは先頭行、先頭カラムに移動しても構わない のですが、背景色を白っぽい色にしたいのです。 つまり、カーソルがあろうとなかろうと、各行、セルを同一色にしたいのです。 いろいろ調べてみましたが、やりかたがわかりませんでした。 ご存じの方はよろしくアドバイスお願いいたします。

  • myart
  • お礼率69% (18/26)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

案1.アクティブセルをなくす DataGridView1.CurrentCell = Nothing 案2.アクティブセルのカラーを変更する DataGridView1.DefaultCellStyle.SelectionForeColor = Color.Black DataGridView1.DefaultCellStyle.SelectionBackColor = Color.White どちらが、仕様に合っているか試して見て下さい。

myart
質問者

お礼

アドバイスいただいた方法でうまくいきました。 ありがとうございました。

関連するQ&A

  • VB2005 DATAGRIDVIEWでの矢印キーの制御について

    お世話になります。 VB2005で開発しています。 DATAGRIDVIEW内の矢印キーを制御できないものかという質問です。 セルが1行に2個あります。 2個目のセルにカーソルを合わせて、文字の最後から←を一つずつ押していくと、カーソルが一文字ずつ前に移動し、先頭に来た状態で、←を押すと、1個目のセルにカーソルが移動してしまいます。 セルの先頭にカーソルがある場合、←を押しても移動しない方法ってあるのでしょうか? よろしくお願いします。

  • DataGridViewの特定のセルで選択状態を保ちたい VB2005

    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

  • vb.netでDataGridViewの背景色の変更について

    初心者ですがよろしくお願いします。 現在DataGridViewにデータを表示できたのですが 背景色の変更ができません。 '編集したDataTableをDataGridViewにセットする DataGridView.DataSource = dt 'DataGridViewにユーザーが新しい行を追加できないようにする DataGridView.AllowUserToAddRows = False '行ヘッダーを非表示にする DataGridView.RowHeadersVisible = False 'DataGridViewの1番目の列を読み取り専用にする DataGridView.Columns(0).ReadOnly = True 'DataGridViewの2番目の列を読み取り専用にする DataGridView.Columns(1).ReadOnly = True 'DataGridViewの3番目以降の列のセルのテキストの配置を上下中央で右寄せする For dateIndex As Integer = 0 To monthList.Count - 1 DataGridView.Columns(2 + dateIndex).DefaultCellStyle.Alignment = _ DataGridViewContentAlignment.MiddleRight Next 'インデックス0の行のセルの背景色を薄い灰色にする DataGridView.Rows(0).DefaultCellStyle.BackColor = Color.LightGray と記述しております。 Rowsの部分をCulumsに変えると縦の色を変えることはできるのですが 何故かRowsだと横の色が変化しません 環境としましては Microsoft Visual Basic 2008 Express Edition VB.NET です ご教授、よろしくお願いします。

  • VB2005ーDataGridViewの選択されたセルの色

    VB勉強中で、何度も申し訳ございません。 DataGridViewの選択されたセルの色がノーマルでは、「点線囲いの青色」になっていますが、ちょっと邪魔なので、透明もしくは、表示させないようにすることってできますか。 DataGridView1.ForeColor = Color.Empty だと無反応 DataGridView1.ClearSelection() だと「点線囲い」だけが残ります。 ご教授願います。よろしくお願いいたします。

  • VB2005 DataGridViewの編集不可項目にただちに入力する方法はありますか?

    vb2005で開発中です。 DataGridViewのセルが Me.DataGridView1.CurentCell.ReadOnly = True で、編集不可としています。その項目にカーソルがある状態で、入力を開始したら、編集可能となり、その値がただちに反映させる方法はありますでしょうか? ・なにかキーを一度押して(KeyPress)から、 Me.DataGridView1.CurentCell.ReadOnly = False にする方法ならば、簡単ですが、そのなにかキーを押す手間を省きたいです。 ・また、なぜ一度 Me.DataGridView1.CurentCell.ReadOnly = True の状態にしたいかというと、 Me.DataGridView1.CurentCell.ReadOnly = False Me.DataGridView1.BeginEdit(True) で、編集可能し、全体を選択した状態で、右矢印を押すと、文字の最後にカーソルが来てしまい、次のセルに移動しないからです。 つまり、やりたいことは、セル上にカーソルがある時、右矢印を押したら、右のセルに移動。また、セル上にカーソルがある時、直接入力したいのです。 他の方法でも何かいい方法がありましたら、お教え下さい。 よろしくお願いいたします。

  • DatagridViewの値確定

    VB2005です。 DataGridViewを私用しています。 EditModeはEditOnEnterです。 特定のセルの値を変更し、カーソルがその列から移動していない状態で、 Buttonコントロールをクリックすると、ボタンクリック時のイベントの前に、 そのセルのCellValueChangedイベントが発生します。 が、同じ要にセルの値を変更し、カーソルがその列から移動していない状態で、 HScrollBarコントロールをクリックすと、CellValueChangedイベントが発生しません。 そうすると、変更した値が反映されず、前の値で処理が進んでしまいます。 HScrollBarコントロールをクリックしたときも、DataGridViewの値が 確定される方法はないでしょうか。 よろしくお願いいたします。

  • VB2005-DataGridView 起動時セルが必ず選択される

    VB2005を勉強しているものです。毎度お世話になりありがとうございます。 今回ですが、DataGridViewを使用したプログラムで、起動時は必ず一番上のセルが選択され、DataGridView1_SelectionChangedイベントが動いてしまい、都合悪いのです。選択されない方法はありませんか また選択されたセルの色が青になりますが、色の変更はできますか ご教授願います。よろしくお願いいたします。

  • VB2005 DataGridView で選択状態(青色反転)

    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

  • DataGridViewのセル選択について

    VB2005でDataGridViewを用い、編集できるセルと編集できないセルを設けています。 編集できないセルは、セルの選択自体出来ないようにしたいのですが、 そのようなことは可能なのでしょうか? タブキーで移動した場合も、入力不可としているセルを飛ばして移動したいのです。 ぜひお教えください。 よろしくおねがいいたします。

  • DataGridViewで指定したセルに書き込み

    こんばんは。 VB2008のDataGridViewで指定したセルに書き込みをする方法はありますか? 例えば(2,1)と指定して1行目2列目に「Hello」と書き込む感じです。 どなたか知っている人が教えてください。

専門家に質問してみよう