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

WinForm(C#):TextBox输入斜杠时禁用Button失效,求助解决方案

解决WinForm中输入斜杠后Button未禁用的问题

我来帮你搞定这个问题!你遇到的情况大概率是以下几个原因之一,咱们一步步排查和修复:

1. 检查TextChanged事件是否正确绑定

这是新手最容易忽略的点:你写的事件处理方法有没有和FirstnameTextBox的TextChanged事件关联起来?

  • 可以在设计器里选中FirstnameTextBox,打开属性面板的事件标签(闪电图标),找到TextChanged,确认它绑定了你写的那个方法。
  • 或者在窗体的构造函数里手动添加绑定:
public YourFormName()
{
    InitializeComponent();
    FirstnameTextBox.TextChanged += FirstnameTextBox_TextChanged; // 确保这行存在
}

2. 补充完整的逻辑(包含恢复启用的情况)

你的代码只处理了输入斜杠时禁用按钮,但没有处理删除斜杠后恢复启用的场景,而且如果有其他地方设置了按钮启用,也会覆盖你的逻辑。建议把代码改成这样:

private void FirstnameTextBox_TextChanged(object sender, EventArgs e)
{
    // 直接根据是否包含斜杠来设置按钮状态,覆盖所有情况
    SaveButton.Enabled = !FirstnameTextBox.Text.Contains('/');
}

这样不管是输入/还是删除/,按钮状态都会实时更新,逻辑更严谨。

3. 排查是否有其他代码修改按钮状态

检查你的窗体代码里,有没有其他地方(比如Form_Load、其他TextBox的事件、按钮自身的事件等)设置了SaveButton.Enabled = true?如果有,这些代码可能会在你的TextChanged事件之后执行,把按钮重新设为启用状态。

4. 确认控件名称是否正确

仔细核对:你代码里的FirstnameTextBox和设计器里的TextBox控件名称是不是完全一致?有没有拼写错误(比如大小写、少打了字母)?

按照上面的步骤排查,应该就能解决问题啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:40:50