C# 在后台调用

C# 在后台调用,c#,C#,我正在努力使表单的背景变得透明,所以我在一些随机项目中测试了下面的代码,它工作得很好,但是现在当我将它应用到一个新项目时,它在加载过程中没有被读取,因为我试图打破这个点!!我做错了什么 protected override void OnPaintBackground(PaintEventArgs e) { Bitmap bmp = new Bitmap(AFK_AIESEC.Properties.Resources.splash); this.locked.Background

我正在努力使表单的背景变得透明,所以我在一些随机项目中测试了下面的代码,它工作得很好,但是现在当我将它应用到一个新项目时,它在加载过程中没有被读取,因为我试图打破这个点!!我做错了什么

protected override void OnPaintBackground(PaintEventArgs e)
{
    Bitmap bmp = new Bitmap(AFK_AIESEC.Properties.Resources.splash);
    this.locked.BackgroundImage = bmp;
}

如果要确保覆盖OnPaint方法,应在构造函数中按如下方式设置窗体样式:

this.SetStyle(ControlStyles.AllPaintingInWmPaint 
              | ControlStyles.OptimizedDoubleBuffer
              | ControlStyles.ResizeRedraw 
              | ControlStyles.DoubleBuffer 
              | ControlStyles.UserPaint
              , true);

这里的重要设置是ControlStyles.UserPaint,它告诉它您想要自己处理绘制。

您的新项目似乎正在手动绘制背景,从而跳过系统绘制?你到底希望在这里实现什么?正如你所说的,我正在尝试手动绘制背景,以便它看起来像一个透明的启动屏幕,背景上有一个.png透明图像。注意,你只需要更改你的不透明度,并在初始化或使用主窗体上的设计器时设置背景图像。不久将发布一个答案。使用此代码,表单将半透明,背景将为splash.png。。但我想要的是整个表单,没有背景色,没有背景,也没有任何内部组件。实际上,OnPaintBackground()工作得很好,但在加载过程中没有被读取。这是主要问题!为此,您必须将FormBorderStyle设置为None,然后将
不透明度设置为0,您还应该相应地更新您的问题。抱歉,我似乎遗漏了一些内容。到底是什么问题?你怎么说它工作得很完美呢?起初,当我在以前的项目中尝试它时,代码工作了,并且加载了。。但是现在,当我在另一个项目中尝试相同的代码时,它没有加载!代码可以工作,但它只是没有加载!