C# DataGridView・ヘッダーの高さと幅の調整方法を設定する

C#サンプル プログラムプログラミング
スポンサーリンク

C# DataGridView・サンプル プログラム一覧


DataGridViewの列と行ヘッダーの高さと幅の調整方法を設定するサンプルです。

サンプルでは

・列ヘッダーの高さの調整方法:高さ調節可(EnableResizing)

・行ヘッダーの幅の調整方法 :幅調節可(EnableResizing)

に設定します。

 

設定するプロパティは

・列ヘッダーの高さの調整方法:ColumnHeadersHeightSizeMode

・行ヘッダーの幅の調整方法:RowHeadersWidthSizeMode

です。

 

デザイナーからの設定も可能です。

デザイナーからの設定

列ヘッダーの高さの調整方法

ColumnHeadersHeightSizeMode

AutoSize列ヘッダーの高さは、すべての列ヘッダー セルのコンテンツに合わせて調整されます。
DisableResizingユーザーはマウスを使用して列ヘッダーの高さを調節できません。
EnableResizingユーザーはマウスを使用して列ヘッダーの高さを調節できます。

行ヘッダーの幅の調整方法

RowHeadersWidthSizeMode

AutoSizeToAllHeaders行ヘッダーの幅が、すべての行ヘッダー セルの内容に合わせて調節されます。
AutoSizeToDisplayedHeaders行ヘッダーの幅が、現在表示されている行のすべての行ヘッダーの内容に合わせて調節されます。
AutoSizeToFirstHeader行ヘッダーの幅が、最初の行ヘッダーの内容に合わせて調節されます。
DisableResizingユーザーはマウスを使用して列ヘッダーの幅を調節できません。
EnableResizingユーザーはマウスを使用して列ヘッダーの幅を調節できます。

プログラムでの設定

・列ヘッダー:ColumnHeadersHeightSizeMode

// 列ヘッダーの高さを調整する方法を設定する(高さ調節可)
dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing;

 

・行ヘッダー:RowHeadersWidthSizeMode

// 行ヘッダーの幅を調整する方法を設定する(幅調節可)
dataGridView1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.EnableResizing;

サンプルの内容

・列ヘッダーの高さを調節可に設定します。

・行ヘッダーの幅を調節可に設定します。

  

使用部品

No項目名Textname部品
1一覧dataGridView1DataGridView
表示ボタン表示button1Button
スポンサーリンク

プログラミング

言語:C#

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

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

        /// <summary>
        /// 表示クリック処理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            // データを作成する
            DataTable dt = createData();

            // dataGridViewにデータをセットする
            dataGridView1.DataSource = dt;

            // ヘッダーのタイトルを設定する(列名指定(Nameプロパティ))
            dataGridView1.Columns["no"].HeaderText = "No";
            dataGridView1.Columns["title"].HeaderText = "書名";
            dataGridView1.Columns["author_name"].HeaderText = "著者名";
            dataGridView1.Columns["price"].HeaderText = "価格";
            dataGridView1.Columns["publisher"].HeaderText = "出版社名";
            dataGridView1.Columns["publication_date"].HeaderText = "出版年月";
            dataGridView1.Columns["stock"].HeaderText = "在庫";

            // Visualスタイルを使用しない
            dataGridView1.EnableHeadersVisualStyles = false;

            // 列ヘッダの背景色を設定する
            dataGridView1.ColumnHeadersDefaultCellStyle.BackColor = Color.Blue;

            // 列ヘッダの文字色を設定する
            dataGridView1.ColumnHeadersDefaultCellStyle.ForeColor = Color.White;

            // 行ヘッダーを表示する
            dataGridView1.RowHeadersVisible = true;

            // 列ヘッダーを表示する
            dataGridView1.ColumnHeadersVisible = true;

            // ■ 今回のサンプル --->

            // 列ヘッダーの高さを調整する方法を設定する
            dataGridView1.ColumnHeadersHeightSizeMode =
               DataGridViewColumnHeadersHeightSizeMode.EnableResizing;

            // 行ヘッダーの幅を調整する方法を設定する
            dataGridView1.RowHeadersWidthSizeMode =
               DataGridViewRowHeadersWidthSizeMode.EnableResizing;

            // ■ <--- 今回のサンプル 

        }

        /// <summary>
        /// データ(DataTable)作成処理
        /// </summary>
        /// <returns>データ</returns>
        private DataTable createData() {

            // DataTableを宣言する
            DataTable dt = new DataTable();

            // 列を作成する          
            dt.Columns.Add("no", typeof(int));                      // No
            dt.Columns.Add("title", typeof(String));                // 書名
            dt.Columns.Add("author_name", typeof(String));          // 著者名
            dt.Columns.Add("price", typeof(Decimal));               // 価格
            dt.Columns.Add("publisher", typeof(String));            // 出版社名
            dt.Columns.Add("publication_date", typeof(DateTime));   // 出版年月
            dt.Columns.Add("stock", typeof(bool));                  // 在庫

            // データを追加する
            dt.Rows.Add(1, "がんばれるC# 入門", "坂本 学"  , 2980, "ABC出版", "2018/01/01", true);
            dt.Rows.Add(2, "パーフェクトC#"    , "高橋 健一", 4200, "海上出版  ", "2019/03/03", false);
            dt.Rows.Add(3, "学ぶC#"            , "工藤 太郎", 1600, "電気出版  ", "2020/08/04", true);
            dt.Rows.Add(4, "初めてのC#"        , "渡辺 銀時", 2000, "川上出版  ", "2020/10/06", false);
            dt.Rows.Add(5, "どんどん学べるC#"  , "沢田 剛"  , 3200, "心の友出版", "2020/11/11", true);

            // dataGridViewを返す
            return dt;
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }
    }
}

実行結果

変更前

変更後

 列ヘッダーの高さと行ヘッダーの幅が変更できます。

以上です

スポンサーリンク
タイトルとURLをコピーしました