c# - C#.net:意外双击一个按钮显示2种不同的形式
问题描述
所以这是我的代码:
private void loginbtn_Click(object sender, EventArgs e)
{
LogIn();
}
private void LogIn()
{
//some code to validate users
//if user and password is in db, show Form2 and record login event to Audit Trail table
}
我从来不知道这个问题可能会发生,直到我不小心按了两次 enter ,因为我设置loginbtn
为AcceptButton
for Form1
,突然,Form2
我的屏幕上弹出了两个 ,所以我重新启动了我的程序并尝试双击loginbtn
来检查问题,是的,两个Form2
's 再次出现在我的屏幕上。这只发生在意外双击时,而不是当我单击一次按钮或在Form1
. 有人请告诉我如何防止它运行两次?我如何解决它?太感谢了。
解决方案
一种可能的解决方案是声明一个布尔变量 ,IsShowing
它表示true
何时Form2
显示,false
何时不显示。然后你可以写:
private void loginbtn_Click(object sender, EventArgs e)
{
if (!IsShowing)
LogIn();
}
我能想到的另一个解决方案是设置Form2
为模态。这样做,第二个实例将不再出现。
第三种解决方案是在Form2
显示后禁用按钮。
推荐阅读
- c# - 如何用天、月和年填充组合框?
- c# - 是否可以将 HttpClient 配置为不保存 cookie?
- r - 大时间序列的预测无法识别每日模式。有什么解决办法?
- oracle - Oracle 中的存储过程,子句 WHERE 中带有 CASE-WHEN
- java - OpenAPI:引用 java 类类型
- android - 如何重新安装内部测试轨道上的 Android 应用程序?
- java - 纵向模式下的动态巴士座位布局
- java - 如何处理硒中的弹出窗口或警报?
- amazon-web-services - 如何在预定时间终止和恢复 Elastic Beanstalk 环境?
- java - 与阻塞 Spring Data JPA(或 JOOQ)配对时,使用 Spring WebFlux 优于 Spring MVC 有什么好处吗?