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

C#桌面应用中如何判断TextBox控件是否已失去焦点

你写法报错的核心原因是:Leave 是TextBox的事件,并非存储焦点状态的布尔属性,不能直接用 == true 做判断,事件的作用是绑定焦点离开时要触发的执行逻辑。

对应两种需求的正确实现:

1. 需要在焦点离开TextBox的瞬间自动执行逻辑

直接订阅Leave事件即可,可以在窗体初始化时用代码绑定:

// 窗体加载/初始化阶段注册事件
txt_partybillno.Leave += Txt_partybillno_Leave;

// 焦点离开时自动触发的方法
private void Txt_partybillno_Leave(object sender, EventArgs e)
{
    // 此处写你要执行的业务代码
}

也可以直接在窗体设计器中,选中TextBox后在属性面板的事件列表里双击Leave项,自动生成事件绑定代码。

2. 需要在任意其他事件中,判断当前TextBox是否已失去焦点

直接调用控件的Focused布尔属性判断即可,该属性返回当前控件是否持有输入焦点:

if (!txt_partybillno.Focused)
{
    // 此处写你要执行的业务代码
}

补充说明:如果你的逻辑需要严格对应「用户刚从该TextBox移走焦点」的触发时机,优先用Leave事件;如果只是其他逻辑执行时需要确认当前该TextBox没有被选中,用上述Focused属性判断即可。

内容的提问来源于stack exchange,提问作者s.k.Soni

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 01:54:04