Windows窗体不能渲染按钮,图像,在运行时启动应用程序 - C#

时间:2016-04-07 12:30:50

标签: c# winforms

我在某些机器上暂时出现这个问题,当用户运行应用程序时,所有按钮,图像,菜单项,几乎所有内容都是空白的。

我的第一个想法是:我有一个单独的线程使用BackgroundWorker更新StatusBar,我已经读过这会导致问题形成渲染。

我找到了https://msdn.microsoft.com/en-us/library/zt39148a(v=vs.110).aspx(葡萄牙语,因为我是巴西人),这解释了这是由我们的银行安装的安全插件引起的问题。其中一个解决方案是联系开发人员让他们分析您的软件,以便插件正常工作。我已经做到了这一点,我正在等待他们的回应。

另一种解决方案是签署我们的汇编,以便插件可以识别为可信软件,这很好,但不幸的是不是免费的。

现在,我的应用程序的一个示例就像它在此问题上推出一样:

article

如上所述的单独线程的代码:

    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;
    }

0 个答案:

没有答案