永发信息网

c#中,我用两个form窗体叠加,前一个半透明,后一个透明。前一个上有控件不想让他透明,希望附上代码说明

答案:4  悬赏:0  手机版
解决时间 2021-03-01 22:16
  • 提问者网友:原来太熟悉了会陌生
  • 2021-03-01 15:39
c#中,我用两个form窗体叠加,前一个半透明,后一个透明。前一个上有控件不想让他透明,希望附上代码说明
最佳答案
  • 五星知识达人网友:傲气稳了全场
  • 2021-03-01 16:22
虽然不是无法实现,但比较麻烦。
因为opacity属性会让窗体上所有的控件都变成透明的,所以我们可以这样办。

代码如下:
Form f = new Form(); //创建一个新窗体
Label lab = new Label(); //要显示的文本
void MainFormLoad(object sender, EventArgs e)
{
f.FormBorderStyle = FormBorderStyle.None; //设置窗体无边框
f.ShowInTaskbar = false;
f.BackColor = Color.Red;f.TransparencyKey = f.BackColor; //让窗体透明
lab.Text = "我是在透明窗体上的不透明文本!";
lab.BackColor = Color.Transparent; //背景色透明
lab.Location = new Point(100,150); //调整在窗体上的位置
f.Controls.Add(lab);
f.TopLevel = true;
f.Show();
}

void MainFormMove(object sender, EventArgs e)
{
f.Location = this.Location;
}

时间仓促,这段代码仍然不是很完美,需要你自己仔细修复一下。
全部回答
  • 1楼网友:北方的南先生
  • 2021-03-01 18:54
Opaticy属性0%为透明 100%为不透明 设置前一个窗体的Opaticy为0%-90%看你需要的透明度,后一个窗体设为0% 可以直接在代码里写this.Opacity = 0;
  • 2楼网友:猎心人
  • 2021-03-01 18:29
100%透明就什么都看不到了 设置Opaticy属性就可以调整Form的透明度
  • 3楼网友:渊鱼
  • 2021-03-01 17:10
在form1里输入: form2 frm = new form2(); frm.show(); 或者修改项目里的program.cs文件里的: application.run(new form2())
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯