質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
DataGrid

GUIの一種であり、データを表の形式でみることが可能です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

2回答

2360閲覧

[C#]DataGridView、行ヘッダーを非表示にするとセルの最下位部分に余剰の領域ができる

kazuhiro_ikeda

総合スコア5

DataGrid

GUIの一種であり、データを表の形式でみることが可能です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2020/06/08 04:35

添付画像のように、ヘッダーを非表示にしたことで、1行分の背景領域が表示されてしまいます。
本行を削除したいのですが、方法ございませんでしょうか?

ご教授のほどお願いしたいです。

イメージ説明

【DataGridViewの設定】
※関連あると思われるのを提示してます。

[DataGridViewオブジェクト].RowHeadersVisible = false;
[DataGridViewオブジェクト].ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
[DataGridViewオブジェクト].AlternatingRowsDefaultCellStyle = System.Drawing.Color.FromArgb(((int)(((byte)(242)))), ((int)(((byte)(242)))), ((int)(((byte)(242)))));

【試したこと】
DataGridViewのヘッダーセルの高さを「0」に設定する
→エラー発生

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2020/06/08 04:46

データが 6 つしか入っていないのでは?
YAmaGNZ

2020/06/08 04:53

この質問のタイトルですとRowHeadersVisibleをtrueにしただけで下の空白部分が表示されなくなると読み取れちゃいますが合ってますか? って、もしかしてRowHeadersVisibleじゃなくてColumnHeadersVisibleですか? ColumnHeadersVisibleをfalseにして見出し分が上につまって空白とか・・・
kazuhiro_ikeda

2020/06/08 05:19

ご回答ありがとうございます! >Zuishin  7つ表示されていて、最下位(グレー部分)が見えるように表示しました(わかりずらく申し訳ないです…)。  本件、以下の用に「スライドバーの幅」を広げたため、dataGridViewで表示されているスライドバーと  別物です。    https://teratail.com/questions/204664    こちらにはスライドバーの「Maximum」を設定(表示画面のケースでは7)しているため、  可動域にはこれ以上稼働できないような表示になっています。   > YAmaGNZ  現在ヘッダーは、行、列ともに表示したくないので「RowHeadersVisible」、「ColumnHeadersVisible」はともにfalseで設定しています。    行ヘッダーに非表示設定をしているためご指摘の通り、見出し文が上に詰まって「空白」が表示されているのかな?  と思っています。    これの回避方法を知りたくご連絡した次第です。  →説明不足していて申し訳ありません。。。
Zuishin

2020/06/08 05:24

よくわかりませんが、とにかくデータが 7 つ入っている DataGridView の一番下のデータの入っている行の色が違うということですか? スタイルもかなり怪しげですが、ここにも何か特殊なものを使っていますか?
YAmaGNZ

2020/06/08 05:31

DataGridViewの大きさを変更してぴったり納まるようにすればいいのでは?
guest

回答2

0

自己解決

【前提】
dataGridViewは別の部品の上に表示している
[上位側の部品].Controls.Add(dataGridView)

【対応内容】
dataGridViewにて、
・ヘッダーを表示する
dataGridView.ColumnHeadersVisible = true;

・dataGridViewの表示開始位置を、y軸のマイナス方向にずらす
this.GuideGrid.Location = new System.Drawing.Point(0, [マイナスヘッダーのサイズ]);

と対応することで、
行ヘッダーを非表示にすることで表示されたグレー(背景色)の領域は、上位側のコントロールの非表示部分に隠れました。

本改修を加えることで対応できましたので本質問はクローズとしたいです。

投稿2020/08/01 09:15

kazuhiro_ikeda

総合スコア5

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YAmaGNZ

2020/08/01 09:28

解決されたそうでなによりです。 「行ヘッダ」と「列ヘッダ」の違いは理解されたのでしょうか? また表示位置をずらす対応なのであれば、サイズ変更の対応でもできそうです。
guest

0

おっしゃる通り、行ではなく背景の色なので
DataGridViewがその高さで、行数が6行である限り仕方ないような気がします。
グリッドの高さを変えるか、BackgroundColorプロパティで、違和感のない背景色に
設定するくらいしか思いつかないです。

投稿2020/06/10 07:36

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問