You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 14:30:39