怎么设置winform背景半透明但控件不透明?

sd797994 2010-07-02 05:01:35
winform程序。我用fireworks做了一张背景半透明的背景图,在winform中把Transparencykey和BackColor设置成了粉红色(因为背景图是半透明的黑色图片,所以没用常用的黑色背景)。问题来了
我装载的背景图还是不透明(用fireworks做了背景透明效果的,存成PNG的格式的。而且也在一个空白网页试验过,图片没问题),没办法我只好去设置Opacity属性90%。这是图片到是变半透明了,可上面摆放的控件也变成半透明了!!!
请问各位大大~到底该如何设置才能让背景半透明而控件不透明啊~~~~
...全文
1151 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxm3630478 2010-07-03
  • 打赏
  • 举报
回复
xue xi
sd797994 2010-07-03
  • 打赏
  • 举报
回复
谢谢各位了,API那个做的我蛋疼,窗体控件还是有透明的问题很是恼火,他别人博客的解决办法居然还是绘制双窗体来解决,看来还是用窗体叠加来做吧。
jianuMan 2010-07-02
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication7
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.Opacity = 0.5;
Form2 form = new Form2();
this.form2 = form;
form.Owner = this;
form.Dock = DockStyle.Fill;
form.Show();
form.BringToFront();
}

private void progressBar1_Click(object sender, EventArgs e)
{

}

private void button1_Click(object sender, EventArgs e)
{
Form2 form = new Form2();
form.ShowDialog();
}

private void Form1_LocationChanged(object sender, EventArgs e)
{
if (form2 != null)
{
this.form2.Location = this.Location;
}
}

Form2 form2;

private void Form1_Resize(object sender, EventArgs e)
{
if (this.form2 != null)
{
this.form2.Size = this.Size;
}
}
}
}
sd797994 2010-07-02
  • 打赏
  • 举报
回复
明天上班试试~
hh252438823 2010-07-02
  • 打赏
  • 举报
回复
学习了,很需要,谢谢
wuyq11 2010-07-02
  • 打赏
  • 举报
回复
两个窗体重叠,底窗体半透明
dylike 2010-07-02
  • 打赏
  • 举报
回复
UpdateLayeredWindow
或多窗体叠加

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧