13

DataGridViewC#でコントロールの未使用スペース(グレースペース)を削除できるかどうか疑問に思っていました。DataGridViewディスプレイは白いテーブルのみにしなければなりません。

助言がありますか?

: この投稿には、無効になった外部画像が含まれていました。

4

8 に答える 8

8

場合によっては (特に winform の場合) 最善の方法はハッキングすることです:

dataGridView1.BackgroundColor = System.Drawing.SystemColors.Control;

私はこの投稿からそれを盗みました: c# で datagrid の空の灰色のスペースを削除する

于 2012-08-06T17:27:43.423 に答える
6

「未使用」または灰色(BackgroundColor)のスペースを削除する簡単な方法が見つかりませんでした。ただし、私にとって効果的な解決策は、DataGridView の境界線を非表示にし、その背景色を周囲のコントロールの背景に変更することでした。要するに、使用されていないスペースがなくなったという認識です。

擬似コードのスニペットを次に示します。

TableGridView = DataGridView()
TableGridView.Width = 0
TableGridView.Height = 0
TableGridView.AutoSize = true 
TableGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
TableGridView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells
TableGridView.BackgroundColor = SystemColors.ControlLightLight
TableGridView.BorderStyle = BorderStyle.None

AutoSize 設定が適用されないことをどこかで読みましたが、状況が変わりました。この例は、周囲のコントロールの背景色が SystemColors.ControlLightLight であることを示唆していますが、これは必要に応じて変更できます。

役に立った場合は、これに投票してください。

于 2011-05-16T23:20:08.953 に答える
5

プロパティを false に設定しRowsHeaderVisibleます。これは、デザイナー、カテゴリAppearence、またはコードから行うことができます。

dataGridView1.RowsHeaderVisible = false;

左側のインジケーター行を削除するには、残りの灰色のスペースと同様に、前述の設定AutoSizeColumnsModeを [塗りつぶし] に設定してみてください。

グリッドを埋めるためにセルのサイズを変更する代わりに、セルの周囲に収まるようにグリッドのサイズを変更できます。これが受け入れられるアプローチであるかどうかは、意図によって異なります。

つまり、その色だけが気になる場合は、背景色を白に設定するとうまくいく可能性があります.

于 2010-01-29T15:36:03.043 に答える
3

私はあなたが望むと信じています:

myDataGrid.AutoSizeColumnsMode = Fill

編集:これは列のサイズを変更するだけです。グリッドの高さのサイズを変更する以外に、行の灰色のスペースを取り除く方法がわかりません。

于 2010-01-29T15:07:42.187 に答える
1
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
于 2010-08-25T06:11:49.283 に答える
0

さて、私は以前にこれに対する答えを見つけるのに苦労しましたが、最終的に空の DataGridView を模倣したい場合、長い答えは " White " Rectangle オブジェクトを作成し、Graphics を使用してオーバーライドされた OnPaint メソッドでグリッド全体を塗りつぶすことです。

于 2012-10-19T09:38:01.430 に答える