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

如何让代码中的MessageBox仅执行一次,仅弹出一次提示?

实现方案

你可以通过新增一个类级别的布尔标记位,记录MessageBox是否已经弹出过,即可实现仅弹窗一次的需求,具体修改如下:

步骤1:在窗体类中新增全局标记变量

在你的窗体类的成员定义部分,加入如下代码:

// 标记空白提示弹窗是否已经弹出过,默认值为未弹出
private bool _hasShownEmptyTip = false;

步骤2:修改原有逻辑,仅在标记为未弹出时触发弹窗

修改你原来的判断逻辑如下:

if(textBox1.Text != "")
{
    listBox1.Items.Add(textBox1.Text);
    textBox1.Clear();
}
else
{
    // 仅当弹窗还未弹出过的时候才触发
    if (!_hasShownEmptyTip)
    {
        DialogResult click = MessageBox.Show("Info Screen", "TextBox is Empty. Do you want to add a blank space?", MessageBoxButtons.OKCancel);
        // 标记弹窗已经弹出过,后续不会再触发
        _hasShownEmptyTip = true;
        if(click==DialogResult.OK)
        {
            listBox1.Items.Add(textBox1.Text);
        }
    }
    // 弹窗已经弹出过的情况下,直接走你需要的默认逻辑即可,比如直接跳过、或者直接加空白
}

如果你后续需要重置弹窗权限(比如其他操作执行后允许再次弹出一次),只需要在对应操作的逻辑里把_hasShownEmptyTip重新赋值为false即可。

内容的提问来源于stack exchange,提问作者PhysicsEnginering

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 17:45:05