C#窗体透明及顶层显示问题。

shuguangleo 2012-05-02 01:07:32
主窗体:
private void FrmMain_Load(object sender, EventArgs e)
{
this.IsMdiContainer = true;
}



主窗体单击事件:
private void button1_Click(object sender, EventArgs e)
{
FrmSub FrmSubt = new FrmSub(); //new出子窗体
FrmSub.MdiParent = this;
//FrmSub.TopLevel = true; //这句报错了所以注释
FrmSub.TopMost = true;
FrmSub.Opacity = 50; //这里的透明度不起所用,设计器上直接改也不起作用
FrmSub.Location = new Point(5, 5); //定位子窗体在主窗体中弹出的位置
FrmSub.Show();
this.panel1.Controls.Add(FrmSub); //弹出的子窗体添加在主窗体的panel里。
}

以上代码有两个问题:
1.主窗体的panel里是个flashRightKey控件作为背景平铺。FrmSub实例化加进panel后,显示在了flashRightKey控件的后面,无法显示在顶层。

2.FrmSub子窗体透明完全没用。


以上问题如何解决呢?或者要达到我要的效果,怎么实现呢?


...全文
387 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuguangleo 2012-05-02
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]

引用 11 楼 的回复:

引用 9 楼 的回复:

用一个新的panel加载窗体,,在把那个panel放在父窗体的那个panel上面


新panel会盖住装有背景图的panel,而且窗体还是不能透明。

设置panel的背景色透明
[/Quote]

没用。panel背景色透明后是窗体背景色,还是盖住了图片。
熙风 2012-05-02
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]

引用 9 楼 的回复:

用一个新的panel加载窗体,,在把那个panel放在父窗体的那个panel上面


新panel会盖住装有背景图的panel,而且窗体还是不能透明。
[/Quote]
设置panel的背景色透明
shuguangleo 2012-05-02
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

用一个新的panel加载窗体,,在把那个panel放在父窗体的那个panel上面
[/Quote]

新panel会盖住装有背景图的panel,而且窗体还是不能透明。
shuguangleo 2012-05-02
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

用一个新的panel加载窗体,,在把那个panel放在父窗体的那个panel上面
[/Quote]

一样,没解决任何问题。
熙风 2012-05-02
  • 打赏
  • 举报
回复
用一个新的panel加载窗体,,在把那个panel放在父窗体的那个panel上面
shuguangleo 2012-05-02
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

楼主,用panel嵌套吧,,在另一panel里面加载那个窗体
[/Quote]

什么意思?没听明白。我的目的就是要把子窗体悬浮在有背景图的父窗体上。不管哪个panel,都是父窗体的。
熙风 2012-05-02
  • 打赏
  • 举报
回复
楼主,用panel嵌套吧,,在另一panel里面加载那个窗体
shuguangleo 2012-05-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

FrmSub FrmSubt = new FrmSub(); //new出子窗体
应该是FrmSubt.BringToFront 不是FrmSub.BringToFront
[/Quote]

我是打错字了。
但是不行。
mizuho_2006 2012-05-02
  • 打赏
  • 举报
回复
FrmSub FrmSubt = new FrmSub(); //new出子窗体
应该是FrmSubt.BringToFront 不是FrmSub.BringToFront
shuguangleo 2012-05-02
  • 打赏
  • 举报
回复
加这个后FrmSub.BringToFront ,闪了一下又被盖住了。
shuguangleo 2012-05-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

FrmSub.BringToFront 试试能不能到前面来
[/Quote]

不行
mizuho_2006 2012-05-02
  • 打赏
  • 举报
回复
FrmSub.BringToFront();
FrmSub.Opacity = 0.5;
bdmh 2012-05-02
  • 打赏
  • 举报
回复
FrmSub.BringToFront 试试能不能到前面来

110,571

社区成员

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

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

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