C#:退出授权码验证窗体时如何终止按钮执行逻辑?
C#中终止授权验证窗体退出后的删除逻辑方案
1. 改造授权验证窗体(AuthCodeFrm),返回验证状态
通过设置DialogResult标记用户操作结果,让删除按钮能明确判断是否执行删除:
private void button1_Click(object sender, EventArgs e) { this.DialogResult = DialogResult.Cancel; // 标记为取消操作 this.Close(); } private void btnok_Click(object sender, EventArgs e) { if (txtDelAuth.Text == G36_Spare.Properties.Settings.Default.User_DeletePass) { this.DialogResult = DialogResult.OK; // 标记为验证通过 this.Close(); } else { MessageBox.Show("授权码错误,请重新输入"); } } private void txtDelAuth_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) btnok_Click(sender, e); }
2. 修改删除按钮逻辑,根据验证结果决定是否执行删除
用ShowDialog()模态弹出授权窗体,根据返回的DialogResult控制删除流程:
private void deletebtn_Click(object sender, EventArgs e) { using (AuthCodeFrm authFrm = new AuthCodeFrm()) { DialogResult result = authFrm.ShowDialog(); // 仅当验证通过(返回OK)时,才执行删除操作 if (result == DialogResult.OK) { // 此处编写你的删除业务代码 // 示例:DeleteSelectedItems(); MessageBox.Show("删除完成"); } // 返回Cancel或其他状态时,直接终止逻辑,不执行删除 } }
核心逻辑说明
ShowDialog()会阻塞当前线程,直到授权窗体关闭,确保删除操作必须等待用户完成验证- 通过
DialogResult明确区分「验证通过」「取消操作」两种状态,精准控制删除逻辑的执行与否
内容的提问来源于stack exchange,提问作者leiryll
相关产品推荐
相关产品推荐

