我在某些机器上暂时出现这个问题,当用户运行应用程序时,所有按钮,图像,菜单项,几乎所有内容都是空白的。
我的第一个想法是:我有一个单独的线程使用BackgroundWorker更新StatusBar,我已经读过这会导致问题形成渲染。
我找到了https://msdn.microsoft.com/en-us/library/zt39148a(v=vs.110).aspx(葡萄牙语,因为我是巴西人),这解释了这是由我们的银行安装的安全插件引起的问题。其中一个解决方案是联系开发人员让他们分析您的软件,以便插件正常工作。我已经做到了这一点,我正在等待他们的回应。
另一种解决方案是签署我们的汇编,以便插件可以识别为可信软件,这很好,但不幸的是不是免费的。
现在,我的应用程序的一个示例就像它在此问题上推出一样:
如上所述的单独线程的代码:
int countAlerta = 0;
int countAlertaRFRP = 0;
int countAlertaAditivo = 0;
private void timer1_Tick(object sender, EventArgs e)
{
if (!backgroundWorker1.IsBusy)
backgroundWorker1.RunWorkerAsync();
else
{
alertaToolStripStatusLabel.Text = "Continuando a verificação...";
alertaToolStripStatusLabel.IsLink = false;
}
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
backgroundWorker1.ReportProgress(0);
timer1.Enabled = false;
lock (new object())
{
countAlerta = new BLL.AlertasBLL().CountRVSRAS();
countAlertaRFRP = new BLL.AlertasBLL().CountRFRP();
countAlertaAditivo = new BLL.AlertasBLL().CountAditivos();
}
backgroundWorker1.ReportProgress(100);
}
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
alertaToolStripStatusLabel.Text = "Verificando...";
alertaToolStripStatusLabel.IsLink = false;
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (countAlerta + countAlertaAditivo + countAlertaRFRP > 0)
{
alertaToolStripStatusLabel.Text = "ALERTA: Verifique!!!";
alertaToolStripStatusLabel.IsLink = true;
alertaToolStripStatusLabel.Font = new Font(alertaToolStripStatusLabel.Font, FontStyle.Bold);
}
else
{
alertaToolStripStatusLabel.Text = "Não existem alertas";
alertaToolStripStatusLabel.IsLink = false;
}
timer1.Enabled = true;
}