|
分類:[ASP.NET (C#)]
いつもお世話になっております。 pictureBox上に設定画面で設定した色でグラデーションをかけ、その上に labelを表示したいのですが labelを表示するとその背景がpictureboxのグラデーションの 縮小された形になっています。 labelの背景を透過させたいのですが どうしたらいいのか教えて下さい。
labelの代わりに g.DrawStringで文字を書けば、解決はしますが 時計を表示させたいのでtimerを使って毎秒時間を変える処理をしているのですが 毎秒Refresh()をすると毎秒ちらつくのでpictureBox上にlabelを表示したいのです。
private void Form2_Shown(object sender, EventArgs e) { label1.BackColor = Color.Transparent; label.Parent = pictureBox; }
private void pictureBox_Paint(object sender, PaintEventArgs e) { // グラデーション処理 Graphics g = pictureBox1.CreateGraphics(); LinearGradientBrush gb = new LinearGradientBrush(g.VisibleClipBounds, Color.DarkBlue, Color.Wheat, LinearGradientMode.Vertical);
g.FillRectangle(gb, g.VisibleClipBounds);
// Refresh(); gb.Dispose(); }
void timer1_Tick(object sender, EventArgs e) { label1.Text = DateTime.Now.ToString(); }
|