在我的C#表单中,我有一个标签,在下载事件中显示下载百分比:
this.lblprg.Text = overallpercent.ToString("#0") + "%";
Run Code Online (Sandbox Code Playgroud)
Label控件的BackColor属性设置为透明,我希望它显示在PictureBox上.但这似乎不能正常工作,我看到一个灰色的背景,它在图片框的顶部看起来不透明.我怎样才能解决这个问题?
我已经创建了一个简单的用户控件,可以手动创建
MyUserControl ctrl = new MyUserControl();
Run Code Online (Sandbox Code Playgroud)
该控件设计为具有BackColor = Color.Transparent并且工作正常,直到我将控件的Parent设置为一个表单,此时它变成表单的颜色.
可能听起来像它的透明,但它的作用是隐藏表格上存在的所有控件.我不是百分之百确定它的控制能够获得稳固的背景或其他在我挂钩时发生的事情,这会阻止其他控件显示.
基本上如果你这样做
例
MyUserControl ctrl = new MyUserControl();
ctrl.Parent = this;
ctrl.BackColor = Color.Transparent;
ctrl.Size = this.Parent.ClientRectangle.Size;
ctrl.Location = this.Parent.ClientRectangle.Location;
ctrl.BringToFront();
ctrl.Show();
Run Code Online (Sandbox Code Playgroud)
基本上我希望usercontrol覆盖整个表单,同时在表单上显示底层控件(因此透明背景).我不想将它添加到窗体控件集合中,因为它并不真正属于窗体,它只是显示在其他所有内容上
我尝试做同样的事情,但没有设置父级,但控件根本没有显示.
谢谢!
编辑:如果我覆盖usercontrol中的OnPaintBackground方法并防止背景被绘制然后它工作,但是使用DrawImage在控件中绘制的PNG图像的透明部分混乱,这是有道理的.