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

WPF组合框选择用户后显示余额:解决初始空引用错误

解决ComboBox启动时User为null的余额显示问题
  • 问题根源:应用启动阶段ComboBox没有选中任何用户,SelectedItem值为null,直接强制转换会触发空引用异常。

  • 替换错误事件:你提到的AfterSelected不是标准UI框架的事件,根据使用的框架选择正确的选择事件:

    • WinForms:使用SelectedIndexChanged事件
    • WPF:使用SelectionChanged事件

代码实现示例(WinForms)

1. 绑定选择事件

可以在窗体构造函数中手动绑定,或者直接在设计器里给ComboBox添加事件:

public YourGamblingForm()
{
    InitializeComponent();
    // 绑定选择变更事件
    cbUser.SelectedIndexChanged += CbUser_SelectedIndexChanged;
}

2. 事件处理逻辑

private void CbUser_SelectedIndexChanged(object sender, EventArgs e)
{
    // 用as安全转换,避免null强制转换报错
    var user = cbUser.SelectedItem as User;
    if (user != null)
    {
        tbBalance.Text = $"Balans: {user.Balance}";
    }
    else
    {
        // 未选中用户时的提示(可选)
        tbBalance.Text = "请选择用户";
    }
}

代码实现示例(WPF)

1. XAML中绑定事件

<ComboBox x:Name="cbUser" SelectionChanged="CbUser_SelectionChanged" />

2. 事件处理逻辑

private void CbUser_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    var user = cbUser.SelectedItem as User;
    if (user != null)
    {
        tbBalance.Text = $"Balans: {user.Balance}";
    }
    else
    {
        tbBalance.Text = "请选择用户";
    }
}

额外优化:启动时默认选中第一个用户

如果希望应用启动后直接显示第一个用户的余额,在绑定ComboBox数据源后添加:

if (cbUser.Items.Count > 0)
{
    cbUser.SelectedIndex = 0;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 01:31:03