我有一个连接到服务器的简单登录表单。
当用户按下登录按钮时,动画加载 GIF 需要显示,直到建立连接或连接失败。
理论上,我做到了:
private void button_login_Click(object sender, EventArgs e)
{
button_login.Text = WORKING;
Loading(ShowMode.show, pictureBox_login_loading);
// send request
client = new TcpClient();
try
{
IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 5000);
client.Connect(endPoint);
// send login details .. :)
output = client.GetStream();
writer = new BinaryWriter(output);
reader = new BinaryReader(output);
// write details
writer.Write("login" "|" userID "|" privateName);
}
catch (Exception)
{
MessageBox.Show("Server is down.");
return;
}
finally
{
// Stop loading and return status
button_login.Text = DEFAULT_LOGIN_TEXT;
Loading(ShowMode.hide, pictureBox_login_loading);
}
}
Loading 是一个将 PictureBox 的 Visible 属性设置为 的函数Visible
。(我认为这会有所帮助)
问题是:gif 仅在button_login_Click
完成运行后才可见,并且在它不可见之后才可见。
如何使动画 gif 在它正在执行的行上可见?