Winforms 设置标签的真实透明度

Winforms 设置标签的真实透明度,winforms,visual-c++,label,transparency,Winforms,Visual C++,Label,Transparency,我正在用c++/cli编写winform应用程序。 在这个应用程序中,我在图片盒上有一个图形,为了指出一些有趣的数据,我使用了一个标记作为标签编码。为了实现透明度,我制定了: label1->Parent = picbureBox1; 然后将背景色设置为透明,但我注意到它是真正的透明,因为它对图片框上绘制的线条不透明,只对背景透明。情况就是这样: / 1 | / 2

我正在用c++/cli编写winform应用程序。
在这个应用程序中,我在
图片盒上有一个图形,为了指出一些有趣的数据,我使用了一个标记作为
标签编码。为了实现透明度,我制定了:

label1->Parent = picbureBox1;
然后将
背景色设置为
透明
,但我注意到它是真正的透明,因为它对
图片框
上绘制的线条不透明,只对背景透明。情况就是这样:

              /                   1  |                  /          2
             /      ---------        |                 
            /       |label1 |        |              |label1|
           /        ---------        |
          /                          |              /
即使是透明的,当标签从1移动到2时,我的标签也会覆盖该行。
我想实现的是:

              /                   1  |                  /          2
             /      ---------        |                 /
            /       |label1 |        |              |label1|
           /        ---------        |               /
          /                          |              /

这是可能的,还是应该在标记覆盖线条时重新绘制线条?

透明度不是您所认为的那样。当你写
label1->Parent=pictureBox1它被翻译成
label1->backColor=pictureBox1->backColor
。label控件不知道picturebox上的图形。因此,是的,您必须在标签中绘制剩余的线。使用CreateGraphics()绘制时会发生这种情况。总是错误的,用绘制事件处理程序绘制。好的,看起来很清楚。我只是想了想,我希望有一种方法可以避免编写更多的代码p@HansPassant:这次我没有使用CreateGraphics,在这种情况下,它不会帮助我使用Paint事件处理程序进行绘图!你的问题记录得太差,无法猜测问题的答案。下一个盲猜测不是将true传递给Invalidate()调用。不要让我们猜测,邮政编码代替ascii艺术。