我们的程序工作正常,直到有人锁定计算机或屏幕保护程序弹出(但不是ctrl + alt + delete).一旦计算机解锁/屏幕保护程序关闭,应用程序将停止绘制除标题栏以外的所有内容,并停止响应输入 - 它显示一个无法移动或关闭的大部分白色窗口.

(应用程序冻结示例 - 山脉来自我的桌面背景)
如果我们让它静置大约5到10分钟,它会恢复生命,并且不会再次挂起(即使在锁定计算机/屏幕保护程序弹出窗口之后),直到应用程序重新启动.
调试很困难,因为只有在手动打开.exe时才从Visual Studio启动程序时才会发生这种情况.
它只在显示启动画面时发生 - 如果我删除代码以显示启动画面,它就会停止发生.但是,我们需要启动画面.
我已尝试过本页的所有建议 ; 唯一没有发生的是使用Microsoft.VisualBasic.WindowsFormsApplicationBase,但这会导致各种其他问题.
互联网上有关这方面的信息似乎很少 - 以前有没有人遇到过类似的问题?
这是相关代码:
//Multiple programs use this login form, all have the same issue
public partial class LoginForm<TMainForm>
where TMainForm : Form, new()
{
private readonly Action _showLoadingForm;
public LoginForm(Action showLoadingForm)
{
...
_showLoadingForm = showLoadingForm;
}
private void btnLogin_Click(object sender, EventArgs e)
{
...
this.Hide();
ShowLoadingForm(); //Problem goes away …Run Code Online (Sandbox Code Playgroud) 我即将开始研究一个大型应用程序(对我来说很重要:P)我想知道,如何为exe程序启动时显示的程序创建一个启动页面,并在所有exe文件都显示时消失装?
我只想要一个简单的Splash Screen示例.
获取代码,插入我的图片,添加2行代码加载并完成.
但我只能谷歌这么复杂,太多了.我只想要一张图片越来越透明,直到它自动隐藏并显示我的窗口.
我尝试了Codeproject的"prettygoodsplashscreen",但不适合我.
Lang是c#.net 2.0
我有一个小的Windows窗体项目,现在我希望在项目启动时显示图像,我的意思是Program.cs
可能吗?
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Image MyPrgImage = Image.FromFile("C:\\Temp\\Images\\For_Network.gif");
??????
Application.Run(new Form1());
}
Run Code Online (Sandbox Code Playgroud) 我有一个申请.
首先,我显示一个启动画面,一个表单,这个启动会调用另一个表单.
问题:当显示启动窗体时,如果我然后在启动画面顶部打开另一个应用程序,然后最小化这个新打开的应用程序窗口,则启动画面变为白色.我该如何避免这种情况?我希望我的飞溅能够清晰显示,不受任何应用程序的影响.
我正在使用这里的Splash Screen .我喜欢它有多简单.但问题是,在我点击之前,启动画面不会消失.在IDE中运行时,它可以正常工作.有任何想法吗?我在这里附上代码,但由于某种原因它没有正确插入.
private System.Windows.Forms.Timer timer1;
//private Splash sp=null;
public Form1()
{
InitializeComponent();
Thread th = new Thread(new ThreadStart(DoSplash));
//th.ApartmentState = ApartmentState.STA;
//th.IsBackground=true;
th.Start();
Thread.Sleep(3000);
th.Abort();
Thread.Sleep(1000);
}
private void DoSplash()
{
Splash sp = new Splash();
sp.ShowDialog();
}
private void timer1_Tick(object sender, System.EventArgs e)
{
// sp.Close();
}
Run Code Online (Sandbox Code Playgroud) 我试图让启动画面首先出现并在启动后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)