相关疑难解决方法(0)

C#中的多线程闪屏?

我想在应用程序加载时显示启动画面.我有一个带有系统托盘控件的表单.我希望在加载此表单时显示启动画面,这需要一些时间,因为它正在访问Web服务API以填充一些下拉菜单.我还想在加载之前对依赖项进行一些基本测试(也就是说,Web服务可用,配置文件是可读的).随着启动的每个阶段的进行,我想要通过进度更新启动屏幕.

我一直在阅读很多关于线程的内容,但是我对它应该控制的地方感到迷茫(main()方法?).我也想知道它是如何main()工作的,这是应该创建的线程吗?现在,如果带有系统托盘控件的表单是"生命"表单,那么它应该来自那里吗?在形式完成之前不会加载吗?

我不是在寻找代码讲义,更多的是算法/方法,所以我可以一劳永逸地解决这个问题:)

.net c# multithreading splash-screen winforms

60
推荐指数
7
解决办法
4万
查看次数

如何在Windows窗体应用程序中构建启动画面?

我需要在应用程序启动时显示启动画面几秒钟.有人知道如何实现这个吗?

非常感谢您的帮助.

c# splash-screen winforms

60
推荐指数
3
解决办法
13万
查看次数

启动画面显示方法最佳实践C#

我通过在运行主表单之前立即启动新线程来显示启动表单.

在这个线程运行的方法中,我正在使用Application.Run,​​如下面的选项1所示.这是一个正确的方法,或者是否有问题等我,因为我已经两次调用Application.Run?另一种选择是选项2,也在下面显示,我调用.ShowDialog()来显示表单.

启动表单本身在指定时间后关闭,在表单本身内控制,两个选项似乎都运行良好.

所以我的问题是:哪个更受欢迎 - 选项1还是选项2?如果你能给出一个或那个很好的具体原因.

谢谢.

主要片段:

// Run splash screen thread.
Thread splash = new Thread(new ThreadStart(ShowSplash));
splash.Start();

// Run main application.
Application.Run(new MainForm());
Run Code Online (Sandbox Code Playgroud)

显示启动表单选项1:

    static void ShowSplash()
    {
        Application.Run(new SplashForm());
    }
Run Code Online (Sandbox Code Playgroud)

显示启动表单选项2:

    static void ShowSplash()
    {
        using (SplashForm splash = new SplashForm())
        {
            splash.ShowDialog();
        }
    }
Run Code Online (Sandbox Code Playgroud)

c# multithreading splash-screen winforms

7
推荐指数
1
解决办法
1万
查看次数

WPF应用程序窗口出现在SplashScreen之上

我按照如何:向WPF应用程序添加启动画面中概述的简单步骤,为我的WPF应用程序添加启动画面.当我启动应用程序时,会显示启动图像,然后弹出主窗口,并且启动图像会消失.

我的问题是,当弹出主窗口时,它会出现在初始图像的顶部.然后,当启动图像开始淡出时,启动图像会再次弹出到顶部.最终结果是,当主窗口出现时,启动图像会瞬间消失.

如何强制主窗口出现在启动图像下,以便启动图像不会消失?

wpf splash-screen

5
推荐指数
2
解决办法
3948
查看次数

淡入淡出屏幕

在C#windows窗体应用程序中.我有一个启动画面,后台发生了一些多线程进程.我想要做的是当我最初显示启动画面时,我希望它看起来"淡入".然后,一旦所有过程完成,我希望看起来好像启动画面"淡出".我正在使用C#和.NET 2.0.谢谢.

c# splash-screen .net-2.0 winforms

4
推荐指数
2
解决办法
1万
查看次数

在加载主窗体期间显示启动画面

我试图让启动画面首先出现并在启动后MainForm出现.但是我在启动画面中的进度条没有到达栏的末尾.程序继续运行而不起作用.

如何在加载主窗体期间显示启动画面?

我的代码就是这样的:

public partial class SplashForm : Form
{
    public SplashForm()
    { 
        InitializeComponent();
    }
    private void SplashForm_Load(object sender, EventArgs e)
    {
        timer1.Enabled = true;
        timer1.Start();
        timer1.Interval = 1000;
        progressBar1.Maximum = 10;
        timer1.Tick += new EventHandler(timer1_Tick);
    }
    public void timer1_Tick(object sender, EventArgs e)
    {
        if (progressBar1.Value != 10)
        {
            progressBar1.Value++;
        }
        else
        {
            timer1.Stop();
            Application.Exit();
        }
    }     
}
Run Code Online (Sandbox Code Playgroud)

以下是代码的第一部分MainForm:

public partial class MainForm : Form
{
    public MainForm()
    {
        InitializeComponent();
        Application.Run(new SplashForm());
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# splash-screen winforms

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

标签 统计

splash-screen ×6

c# ×5

winforms ×5

.net ×2

multithreading ×2

.net-2.0 ×1

wpf ×1