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

C#从TextBox获取整数时报对象引用相关错误如何解决

错误原因

  • 你代码中使用的TextBox是控件类的类名,并非你界面上实际存在的文本框实例名,非静态类的成员必须通过实例对象访问,这是触发报错的核心原因。
  • 除了这个引用错误,现有代码还存在潜在崩溃风险:如果用户输入非数字内容,int.Parse会直接抛出格式异常。

修复方案

你可以选下面任意一种方式修复引用问题,推荐优先用第一种,不需要绑定固定控件名:

方式1:通过事件发送者获取实例

如果这个TextChanged事件是直接绑定到你要取值的文本框上的,可以直接把sender转为TextBox实例使用:

private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
    TextBox currentTxt = sender as TextBox;
    // 防御性判断,避免非文本框触发该事件时报错
    if (currentTxt == null) return;

    // 用TryParse做容错转换,避免非数字输入崩溃
    if (int.TryParse(currentTxt.Text, out int result))
    {
        // 此处写入转换成功后的逻辑,result就是提取到的整数
    }
}

方式2:通过控件名访问

打开界面设计器,选中你要取值的文本框,在属性面板找到Name属性,复制你设置的控件名(比如你设置的是txtNumberInput),替换代码中的类名TextBox即可:

private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
    if (int.TryParse(txtNumberInput.Text, out int result))
    {
        // 后续逻辑
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 02:24:03