小编Dra*_*x64的帖子

我的 C# 表单闪烁,我无法修复它。我已经尝试了一切

我已经在这个程序上工作了大约一个月了,尝试了一切。无论我做什么,我的程序都会闪烁,即使在其他机器上也是如此。它只是一个背景、一个图像和一个矩形。没有什么大的或昂贵的。然而它仍然闪烁。我试过将 DoubleBuffered 设置为 true,我试过覆盖 CreateParams(它使我的窗口变黑),我试过使用反射的方法,我试过 SetStyle 来设置 DoubleBuffer、OptimizedDoubleBuffer、UserPaint、AllPaintingInWmPain 和 Opaque当设置为 true 时,他们都没有做任何事情。我已经在 google 和 stackoverflow 上搜索了答案,但没有一个起作用。我无法理解我做错了什么。我添加了代码、exe、编译脚本和图像的 zip。我和其他人的计算机上发生的事情就是 gif 上的内容。该程序每秒更新 4 次,足以绘制背景、图像和正方形的时间,但它仍然闪烁。请我需要帮助。

主文件:

using System;
using System.Threading;
using System.Windows.Forms;

public class main{

    public static void Main(string[] args){
    
        Console.WriteLine("START");
    
        Engine.Init();
    
        while(true){
        
            Engine.MainDraw();
            Application.DoEvents();
        
            Thread.Sleep(250);
        }
    
        Console.WriteLine("END");
    
    }

}
Run Code Online (Sandbox Code Playgroud)

引擎.cs:

using System;
using System.IO;
using System.Windows;
using System.Windows.Forms;
using System.Drawing;

public class Engine : Form{
    
    public static Engine EngineForm = new Engine();
    public static Graphics g;
    
    /*
    protected override CreateParams CreateParams{
        get{
            CreateParams …
Run Code Online (Sandbox Code Playgroud)

c# forms gdi+ flicker winforms

0
推荐指数
1
解决办法
84
查看次数

标签 统计

c# ×1

flicker ×1

forms ×1

gdi+ ×1

winforms ×1