当我按下带有转换的按钮时,我试图让我的表单背景发生变化。
我认为最简单快捷的方法是将白色面板放在我的Form上,背面为空白,并在点击按钮时将其alpha分量从0更改为250然后从250更改为0 。 当alpha达到其最大值时,我想更改背景图像。 这种技术就像一小时前一样,但现在颜色根本没有变化,我的代码也没有完全执行。 这是Timer调用的函数:
private void ChangeIndex(object sender, EventArgs e)
{
if (progressBar.Value == progressBar.Maximum-progressBar.Step)
{
t.Stop();
btnDébut.Enabled = true;
btnFin.Enabled = true;
btnPrécédent.Enabled = true;
btnSuivant.Enabled = true;
if (indiceCourant >= dt.Rows.Count)
{
this.indiceCourant = 0;
}
lblChargement.Visible = false;
progressBar.Visible = false;
RemplitChamps(indiceCourant);
}
progressBar.Step = 10;
progressBar.Maximum = 200;
progressBar.PerformStep();
MessageBox.Show(progressBar.Value.ToString() + " " + pnlFondEcran.BackColor.A.ToString() + " " + progressBar.Maximum.ToString());
if(progressBar.Value <100)
{
this.pnlFondEcran.BackColor = System.Drawing.Color.FromArgb(pnlFondEcran.BackColor.A + progressBar.Maximum/progressBar.Step,255, 255,255);
// i wanna add 24 each time, until alpha=240
}
else
{
MessageBox.Show("error");
this.pnlFondEcran.BackColor = System.Drawing.Color.FromArgb(pnlFondEcran.BackColor.A -progressBar.Maximum / progressBar.Step, 255, 255, 255);
//then substract 24 each time
}
}
Panel的名字是pnlFondEcran。
进度条工作正常。
MessageBox.Show(some stuff )
&#39; s ouptpur是0,20,40 ...到200,0,200。
在调用函数的第一次调用之前,progressBar.Value<100
语句永远不会被计算,我不知道为什么。
这是调用ChangeIndex()的方法:
private void DebutTimer()//lance le timer pour la progressbar
{
lblChargement.Visible = true;
progressBar.Visible = true;
progressBar.Value = 0;
//gestion du timer
t = new System.Windows.Forms.Timer();
t.Interval = 150;
t.Enabled = true;
t.Tick += new EventHandler(ChangeIndex);
t.Start();
//gestion des boutons
btnDébut.Enabled = false;
btnFin.Enabled = false;
btnPrécédent.Enabled = false;
btnSuivant.Enabled = false;
}