mogice
3/2/2017 - 8:59 AM

DataGridViewでセルを選択させない

セットした値をDataGridViewに表示するだけで選択をさせない。 選択した際のセル色を行の背景色と同じにすれば良い。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace CS_DataGridView
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            ////行ヘッダーを非表示にする
            //dataGridView1.RowHeadersVisible = false;
            ////セル選択方法を行選択にする
            //dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
            ////複数行選択出来ないようにする
            //dataGridView1.MultiSelect = false;
            ////ユーザーが行削除を出来ないようにする
            //dataGridView1.AllowUserToDeleteRows = false;
            ////ユーザーが行追加を出来ないようにする
            //dataGridView1.AllowUserToAddRows = false;
            ////ユーザーが行幅変更を出来ないようにする
            //dataGridView1.AllowUserToResizeRows = false;
            ////読み取り専用を設定する
            //dataGridView1.ReadOnly = true;
            //選択行の色をデフォルトの背景色・前景色に変更
            dataGridView1.DefaultCellStyle.SelectionBackColor = dataGridView1.DefaultCellStyle.BackColor;
            dataGridView1.DefaultCellStyle.SelectionForeColor = dataGridView1.DefaultCellStyle.ForeColor;
            //データをセット
            for (int idx = 1; idx <= 10; idx++)
            {
                dataGridView1.Rows.Add(new string[] { "colA" + idx, "colB" + idx, "colC" + idx, "colD" + idx, "colE" + idx, "colF" + idx });
            }
        }
    }
}
Public Class Form1
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        ''行ヘッダーを非表示にする
        'DataGridView1.RowHeadersVisible = False
        ''セル選択方法を行選択にする
        'DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
        ''複数行選択出来ないようにする
        'DataGridView1.MultiSelect = False
        ''ユーザーが行削除を出来ないようにする
        'DataGridView1.AllowUserToDeleteRows = False
        ''ユーザーが行追加を出来ないようにする
        'DataGridView1.AllowUserToAddRows = False
        ''ユーザーが行幅変更を出来ないようにする
        'DataGridView1.AllowUserToResizeRows = False
        ''読み取り専用を設定する
        'DataGridView1.ReadOnly = True
        '選択行の色をデフォルトの背景色・前景色に変更
        DataGridView1.DefaultCellStyle.SelectionBackColor = DataGridView1.DefaultCellStyle.BackColor
        DataGridView1.DefaultCellStyle.SelectionForeColor = DataGridView1.DefaultCellStyle.ForeColor
        'データをセット
        For idx As Integer = 1 To 10
            DataGridView1.Rows.Add({"colA" + idx.ToString, "colB" + idx.ToString, "colC" + idx.ToString, "colD" + idx.ToString, "colE" + idx.ToString, "colF" + idx.ToString})
        Next
    End Sub
End Class