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

C# ListBox选中项填充TextBox时int转string赋值实现方法

问题场景

本地文件夹存储有JSON文件 Shawn Milke.json,文件内容如下:

{
  "FirstName": "Shawn",
  "LastName": "Milke",
  "Email": "shawn.milke@alesana.com",
  "TeamName": "Shawn Milke",
  "Password": "shawn123",
  "IsActive": "Yes",
  "UserId": 100
}

实现从JSON文件读取数据填充ListBox控件的代码:

private void ShowListViewNew()
{
    List<UserAccount> userAccounts = new List<UserAccount>();

    var dir = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
    var outputDir = Path.Combine(dir, "Output");

    foreach (var file in Directory.GetFiles(outputDir, "*.json"))
    {
        var text = File.ReadAllText(file);
        var model = JsonConvert.DeserializeObject<UserAccount>(text);
        userAccounts.Add(model);
    }
    listBoxUsers.DataSource = userAccounts;
}

选中ListBox项后填充对应文本框控件的代码:

private void listBoxUsers_SelectedIndexChanged(object sender, EventArgs e)
{
    var model = (UserAccount)listBoxUsers.SelectedItem;
    txtFirstName.Text = model.FirstName;
    txtLastName.Text = model.LastName;
    txtEmail.Text = model.Email;
    txtTeamName.Text = model.TeamName;
    txtPassword.Text = model.Password;
    if (model.IsActive== "Yes")
    {
        chkIsActive.Checked = true;
    }
    else
    {
        chkIsActive.Checked = false;
    }
    txtUserId.Text = model.UserId;
}

核心问题:txtUserId.Text = model.UserId; 行需要将int类型的UserId值转换为字符串类型才能完成赋值,已知int.Parse()可以实现字符串转int,需要int转字符串赋值给文本框的正确实现方式。

解决方案

C#中所有基础类型都自带ToString()方法,直接调用即可把int类型值转为对应的字符串,修改报错行代码为:

txtUserId.Text = model.UserId.ToString();

如果使用C# 6及以上版本,也可以用字符串插值写法实现同样效果:

txtUserId.Text = $"{model.UserId}";

两种写法都能满足赋值要求,其中ToString()是兼容性最高、最通用的写法。
另外可以顺便简化IsActive的判断逻辑,不需要写完整if-else块,直接用布尔表达式赋值即可:

chkIsActive.Checked = model.IsActive == "Yes";

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 05:21:37