我的形态转变是缓慢的,当我点击按钮,我使用线程有一个表格效果形成不透明度从0.1开始,增加的数量。然后我有一个方法,并从线程中的Form_Load启动该方法。形态转变是缓慢的
private void RunTimer_Tick_Things()
{
if (flag)
{
while (this.Opacity <= cs.CheckMaxOpacityValue())
{
Thread.Sleep(cs.GetTimerSleepNumberToIncreaseOcacity());
if (this.Opacity == cs.CheckMaxOpacityValue())
{
thrdTimer.Abort();
break;
}
this.Opacity += cs.GetIncreasedOpacityValue();
}
}
else
{
while (this.Opacity >= cs.CheckMinOpacityValue())
{
Thread.Sleep(cs.GetTimerSleepNumberToDecreaseOpacity());
this.Opacity -= cs.GetDecreasedOpacityValue();
}
thrdTimer.Abort();
}
}
而且我有按钮在这种形式打开另一种形式。像这样
private void button2_Click(object sender, EventArgs e)
{
Form2DatabaseSetup frm2 = new Form2DatabaseSetup();
StopThread();
this.Hide();
frm2.Show();
flag = false;
}
我的问题是当我点击这个按钮时,第二个窗体缓慢打开。 想象一下,您单击按钮,然后第一个窗体隐藏并等待1.5秒,然后打开第二个窗体。 注意:第二种形式具有线程和相同的功能。
没有人有经历过或不知道,有一个关于这种情况下的知识?
您可能会感兴趣的关于这个问题的答案以及:http://stackoverflow.com/questions/12497826/better-algorithm-to-fade-a-winform – Sabre
你使用WinForms或WPF? –
开始使用WPF ...这样的东西要容易得多。它可能会慢慢打开,因为UI线程正在激活不透明度以及显示新窗体。 –