在我的 C# 表单中,我有一个在下载事件中显示下载百分比的标签:
In my C# Form I have a Label that displays a download percentage in the download event:
this.lblprg.Text = overallpercent.ToString("#0") + "%";
Label 控件的 BackColor 属性设置为透明,我希望它显示在 PictureBox 上.但这似乎无法正常工作,我看到灰色背景,在图片框顶部看起来不透明.我该如何解决这个问题?
The Label control's BackColor property is set to be transparent and I want it to be displayed over a PictureBox. But that doesn't appear to work correctly, I see a gray background, it doesn't look transparent on top of the picture box. How can I fix this?
Label控件很好的支持透明.只是设计师不会让你正确放置标签.PictureBox 控件不是容器控件,因此 Form 成为标签的父级.所以你会看到表单的背景.
The Label control supports transparency well. It is just that the designer won't let you place the label correctly. The PictureBox control is not a container control so the Form becomes the parent of the label. So you see the form's background.
通过向表单构造函数添加一些代码很容易解决.您需要更改标签的 Parent 属性并重新计算它的 Location,因为它现在是相对于图片框而不是表单.像这样:
It is easy to fix by adding a bit of code to the form constructor. You'll need to change the label's Parent property and recalculate it's Location since it is now relative to the picture box instead of the form. Like this:
public Form1() {
InitializeComponent();
var pos = this.PointToScreen(label1.Location);
pos = pictureBox1.PointToClient(pos);
label1.Parent = pictureBox1;
label1.Location = pos;
label1.BackColor = Color.Transparent;
}
在运行时看起来像这样:
Looks like this at runtime:
另一种方法是解决设计时问题.那只需要一个属性.添加对 System.Design 的引用并向您的项目添加一个类,粘贴以下代码:
Another approach is to solve the design-time problem. That just takes an attribute. Add a reference to System.Design and add a class to your project, paste this code:
using System.ComponentModel;
using System.Windows.Forms;
using System.Windows.Forms.Design; // Add reference to System.Design
[Designer(typeof(ParentControlDesigner))]
class PictureContainer : PictureBox {}
这篇关于对 PictureBox 的透明控制的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
是否有执行 Excel NORMINV 函数的 C# 库?Is there a C# library that will perform the Excel NORMINV function?(是否有执行 Excel NORMINV 函数的 C# 库?)
从 C# 中的加权列表中选择 x 个随机元素(无需替换Select x random elements from a weighted list in C# (without replacement)(从 C# 中的加权列表中选择 x 个随机元素(无需替换))
给定轮班列表,创建时间表的摘要描述Create a summary description of a schedule given a list of shifts(给定轮班列表,创建时间表的摘要描述)
C# 普通随机数C# Normal Random Number(C# 普通随机数)
通用列表的标准偏差?Standard deviation of generic list?(通用列表的标准偏差?)
AsyncCTP:创建一个 IAwaitable 的类AsyncCTP: Creating a class that is IAwaitable(AsyncCTP:创建一个 IAwaitable 的类)