绘屏前不要先把屏幕刷新一次。也就是说不要用clear涂背景色。

解决方案 »

  1.   

    不要使用
    Graphics类的Clear方法,填涂背景色。
      

  2.   

    不好意思,看错了,我还以为你问的是怎么不让其闪屏。如果你要闪屏,最简单的办法,不断的调用Graphics.Clear方法重绘背景色,最佳是黑白色:)如果你需要全屏什么的,那就需要使用DirectX,同样是调用Clear方法。具体代码,由于我工作的机器不能POST,所以不能放上。
      

  3.   

    有这个方法的
    你在form的paint事件中
    e.Graphics.Clear(Color.Teal);
      

  4.   

    你们理解错了,他想在程序启动时出现一个窗口,然后程序在后台做一些事情,等做完了再呈现正式的主窗口,也许是在form.load中做了费时的事,为了不让用户不耐烦而这么做的。
      

  5.   

    对对, hhzh426(春之风)说得对哦
      

  6.   

    namespace ICSharpCode.SharpDevelop
    {
    public class SplashScreenForm : Form
    {
    public SplashScreenForm()
    {
    #if !DEBUG
    TopMost         = true;
    #endif
    FormBorderStyle = FormBorderStyle.None;
    StartPosition   = FormStartPosition.CenterScreen;
    ShowInTaskbar   = false;
    ResourceManager resources = new ResourceManager("IconResources", Assembly.GetCallingAssembly());
    Bitmap bitmap = (Bitmap)resources.GetObject("SplashScreen");
    Size = bitmap.Size;
    BackgroundImage = bitmap;
    }
    }

    /// <summary>
    /// This Class is the Core main class, it starts the program.
    /// </summary>
    public class SharpDevelopMain
    {
    static SplashScreenForm splashScreen = null;
    static string[] commandLineArgs;

    public static SplashScreenForm SplashScreen {
    get {
    return splashScreen;
    }
    }

    public static string[] CommandLineArgs {
    get {
    return commandLineArgs;
    }
    }

    /// <summary>
    /// Starts the core of SharpDevelop.
    /// </summary>
    [STAThread()]
    public static void Main(string[] args)
    {
    commandLineArgs = args;
    bool noLogo = false;

    foreach (string arg in args) {
    if (arg.ToUpper().EndsWith("NOLOGO")) {
    noLogo = true;
    }
    }

    if (!noLogo) {
    splashScreen = new SplashScreenForm();
    splashScreen.Show();
    }

    try {

    //完成初始化工作

    } catch (Exception e) {
    MessageBox.Show("Loading error, please reinstall :\n" + e.ToString());
    return;
    } finally {
    if (splashScreen != null) {
    splashScreen.Close();
    splashScreen.Dispose();
    }
    }
    }
    }
    }代码不是我的,摘自 SharpDevelop 。
      

  7.   

    Simple  Splash  Screens        
    http://www.devhood.com/tutorials/tutorial_details.aspx?tutorial_id=406    
     
    30.7  How  do  I  display  a  splash  screen  type  form,  one  with  only  client  area  (no  border  or  titlebar)    
    http://www.syncfusion.com/faq/winforms/search/621.asp