答えて
(グリッドは、背景画像と形に含まれていた場合)私は最も簡単な修正を加えて特定の問題にこのソリューションをしたあなたは、一般的な透明グリッドを作成するためにそれを適応させることができ、場合だけ頼みます親は背景画像を持っています。そうでなければ、親の背景色を使用してグリッドを塗りつぶすだけです。
あなたはDataGridViewのから継承し、このようなPaintBackground方法オーバーライドする必要があります。フォームの色と同じ
protected override void PaintBackground(Graphics graphics, Rectangle clipBounds, Rectangle gridBounds)
{
base.PaintBackground(graphics, clipBounds, gridBounds);
Rectangle rectSource = new Rectangle(this.Location.X, this.Location.Y, this.Width, this.Height);
Rectangle rectDest = new Rectangle(0, 0, rectSource.Width, rectSource.Height);
Bitmap b = new Bitmap(Parent.ClientRectangle.Width, Parent.ClientRectangle.Height);
Graphics.FromImage(b).DrawImage(this.Parent.BackgroundImage, Parent.ClientRectangle);
graphics.DrawImage(b, rectDest, rectSource, GraphicsUnit.Pixel);
SetCellsTransparent();
}
public void SetCellsTransparent()
{
this.EnableHeadersVisualStyles = false;
this.ColumnHeadersDefaultCellStyle.BackColor = Color.Transparent;
this.RowHeadersDefaultCellStyle.BackColor = Color.Transparent;
foreach (DataGridViewColumn col in this.Columns)
{
col.DefaultCellStyle.BackColor = Color.Transparent;
col.DefaultCellStyle.SelectionBackColor = Color.Transparent;
}
}
'SetCellsTransparent'の下で、' .BackColor'と '' .SelectionBackColor'を設定するために 'this.DefaultCellStyle'を使います。 'foreach'ループの必要はありません。 – OhBeWise
すべての行と列を透明に設定する必要があります。簡単な方法は次のとおりです。
for (int y = 0; y < gridName.Rows[x].Cells.Count; y++)
{
yourGridName.Rows[x].Cells[y].Style.BackColor =
System.Drawing.Color.Transparent;
}
そして、そのループを別の列に入れて入れておく必要があります... – choudeshell
とデータのビューの背景色はどうですか? – Moon
これはデザイン時に可能です。 – galford13x
セットのDataGridViewの背景色を。これを行うには、datagridviewを選択します。プロパティ - > RowTemplate - > DefaultCellStyle - > BackColorに移動し、フォームの色を選択します。
私はDeumberのソリューションでこれを行なったし、それが動作しますが、私は小さな改善を加えることによって回避するいくつかのトラブルが発生します。DGVをスクロール
A.バックグラウンドを台無しに。解決策:これをどこかに置きます:
public partial class main : Form
{
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x02000000;
return cp;
}
}
}
背景はまだスクロールされますが、各スクロールステップの直後に修正されます。それは目立つけど、私には受け入れられた。誰もがこれを使ってスクロールをサポートするためのより良いソリューションを知っていますか?
B.デザイナーが問題を抱えています。ソリューション:
protected override void PaintBackground(Graphics graphics, Rectangle clipBounds, Rectangle gridBounds)
{
base.PaintBackground(graphics, clipBounds, gridBounds);
if (main.ActiveForm != null && this.Parent.BackgroundImage != null)
{
Rectangle rectSource = new Rectangle(this.Location.X, this.Location.Y, this.Width, this.Height);
Rectangle rectDest = new Rectangle(-3, 3, rectSource.Width, rectSource.Height);
Bitmap b = new Bitmap(Parent.ClientRectangle.Width, Parent.ClientRectangle.Height);
Graphics.FromImage(b).DrawImage(this.Parent.BackgroundImage, Parent.ClientRectangle);
graphics.DrawImage(b, rectDest, rectSource, GraphicsUnit.Pixel);
SetCellsTransparent();
}
}
ここでデザイナーはDGVと同じように扱います。 ActiveFormがなくてもDGVを描画したい場合は失敗しますが、通常そうではありません。まだデザイナーを使用していて、リリース用に削除したい場合は、if-lineをそのまま使用することもできます。
DataGridViewのBackGroundColorプロパティで透明な色を使用することはできません。
私はこのプロパティを親のBackColorと同期させることに決めました。リサイズの古き良きデータバインディング機能は、この時に非常に良いです:
myDataGridView.DataBindings.Add(nameof(DataGrid.BackgroundColor),
this,
nameof(Control.BackColor));
だけ
InitializeComponents();
た後、私はこれはかなり古いですけど、これは非常によく動作します。
- 1. CAEmitterLayerの背景を透明に設定するには?ここ
- 2. どのページの透明な背景を設定するには
- 3. UILabelの背景を透明な黒に設定する
- 4. LibGDX状態の背景を透明に設定する
- 5. Qtで透明なQTableWidgetの背景を設定するには?
- 6. アクションバーの透明な背景を設定するには
- 7. ActionSheetが不透明な背景ビュー
- 8. Android:アクティビティで背景色と半透明の背景画像を設定する
- 9. HTML5要素に透明な背景を設定する方法
- 10. DialogViewControllerで背景を透明に設定する方法
- 11. QQuickFramebufferObjectの背景を透明に設定できますか?
- 12. 透明なPNGの背景色を設定する
- 13. androidダイアログボックス - 背景画像の不透明度を設定する
- 14. ボタン以外の背景色+不透明度を設定する
- 15. IrfanViewで透明な画像の背景を設定する
- 16. WPF Datagridの丸みのある透明な背景のコーナー
- 17. 透明な背景
- 18. 形状の背景をアンドロイドで透明に設定
- 19. fbml iframeで体の背景を透明に設定
- 20. Visual Studio 2015イメージエディタ - 透明な背景を設定する1ピクセル
- 21. 透明に設定しても透明な背景はありません。
- 22. EditTextは背景の不透明度を設定します
- 23. ページの背景を透明にする
- 24. ステータスバーの背景を透明にする
- 25. フォームの背景を透明にする
- 26. 透明度を設定したテキストの背景色を設定する
- 27. Androidステータスバーで背景色を半透明色に設定
- 28. DrawerNavigatorは背景を透明に設定できません。
- 29. Androidツールバーで背景色を半透明色に設定
- 30. Javaアプレット、背景を透明にする
このエラーはデザイナーからのものですか? – galford13x