我有以下代码:
这称为第二种形式
private void updateToolStripMenuItem_Click(object sender, EventArgs e)
{
Update fm = new Update();
fm.ShowDialog();
}
Run Code Online (Sandbox Code Playgroud)
这是构造函数
public Update()
{
InitializeComponent();
}
Run Code Online (Sandbox Code Playgroud)
这是负载
private void Update_Load(object sender, EventArgs e)
{
String ver = checkver();
if (ver == "update")
{
if (RemoteFileExists(dlUrl) == true)
{
WebClient webClient = new WebClient();
webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged);
webClient.DownloadFileAsync(new Uri(dlUrl), "");
}
else
MessageBox.Show("An error occurred. Please try later.");
}
else if (ver == "newest")
{
MessageBox.Show("You are currently using the newest version.");
this.Close();
}
else
{
this.Close();
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,当函数结果是2或3时,表单显示毫秒然后关闭(闪烁).我希望表单不闪烁.可能吗?
我试图使用this.Hide(),this.Visible = False但没有任何帮助.
编辑:我把原始代码EDIT2:放更多的代码
您可以在加载之前隐藏表单,然后在您的if else
条件中将其设置为可见.例如:
MyForm myForm = new MyForm();
myForm.Opacity = 0;
myForm.Show();
Run Code Online (Sandbox Code Playgroud)
然后:
if (ver == "update")
{
if (RemoteFileExists(dlUrl) == true)
{
myForm.Opacity = 100;
...
}
else
MessageBox.Show("An error occurred. Please try later.");
}
else if (ver == "newest")
{
MessageBox.Show("You are currently using the newest version.");
this.Close();
}
else
{
this.Close();
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10713 次 |
最近记录: |