如何在另一个WinForm中通过C# WinForm查看

3
我用C#和winforms制作了一个截屏应用。现在,我正在尝试从另一个winform中查看一个winform。目前的情况如下: screenshot 黑色背景的不透明度是第一个winform,蓝色矩形的填充是第二个winform。 我需要一种方法通过winform 1来查看网页内容。
这就是我想要实现的效果: how is should be 我已经尝试将Fill Color设置为透明关键色,例如:
这是winform number 1的TransparencyKey代码:
this.TransparencyKey = System.Drawing.Color.Pink;

这是在 Winform 窗体上绘制矩形的代码:

SolidBrush TransparentBrush = new SolidBrush(Color.Transparent);
Pen MyPen = new Pen(Color.Blue, 2);

private void ThePaint(object sender, System.Windows.Forms.PaintEventArgs e)
        {
            g.FillRectangle(TransparentBrush, CurrentTopLeft.X, CurrentTopLeft.Y, RectangleWidth, RectangleHeight);
            g.DrawRectangle(MyPen, CurrentTopLeft.X, CurrentTopLeft.Y, RectangleWidth, RectangleHeight);
            RectangleDrawn = true;
        }

1
我认为你最好使用WPF来完成这个任务。 - mbeckish
我希望可以使用WPF,但是这个不行。 - Ofir Hadad
  1. 它已经完成了。
  2. 在我开始使用Winforms之后,我才知道WPF。
- Ofir Hadad
1个回答

1
你可以在表单2上放置一个面板,然后将其颜色设置为“粉色” - 这样,它将透明穿过表单2到背后的网页。唯一的缺点是,如果你在上面放置了任何控件,它看起来会很奇怪。所有这些都可以通过WinForm设计器实现。

“这样,通过窗体2到背后的网页,它将变得透明。” 你是不是指从1?因为我需要它能够穿透黑色不透明的Winform。 - Ofir Hadad
没关系 - 很高兴能够帮到您!抱歉我没有回复您的评论。 - Bertie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接