You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在C# WPF的ListBox中显示.txt文件内容?

解决WPF ListBox加载txt文件姓名的步骤

我来一步步帮你搞定这个问题,分文件放置、代码实现两部分说:

一、txt文件的保存位置与项目设置

最简单的方式是把txt文件整合到你的WPF项目里,这样编译后会自动跟着程序走:

  1. 在Visual Studio的解决方案资源管理器里,右键你的项目 → 添加现有项,选中你的txt文件(建议命名为Names.txt,方便识别)。
  2. 选中刚添加的txt文件,在右侧属性窗口里,把复制到输出目录改成如果较新则复制生成操作保持内容即可。
    这样编译后,txt文件会和你的exe程序在同一个文件夹里,程序就能轻松定位到它。

二、C#代码实现读取与显示

打开你的窗口后台代码(比如MainWindow.xaml.cs),在窗口的构造函数里(记得放在InitializeComponent()之后)编写逻辑,或者绑定Loaded事件来执行:

核心代码示例

public MainWindow()
{
    InitializeComponent();

    // 1. 拼接txt文件的完整路径:当前程序运行目录 + 文件名
    string filePath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Names.txt");

    try
    {
        // 2. 读取文件的全部文本内容
        string fileContent = System.IO.File.ReadAllText(filePath);

        // 3. 解析内容,提取出所有姓名
        // 先按空格拆分每个"姓名+年龄"单元,再按逗号拆分出姓名部分,最后去掉多余空格
        var names = fileContent.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)
                               .Select(item => item.Split(',')[0].Trim())
                               .ToList();

        // 4. 将姓名加载到ListBox中
        // 方式一:逐个添加项
        foreach (var name in names)
        {
            listBox1.Items.Add(name);
        }
        // 方式二:直接绑定数据源(更符合WPF的MVVM思路)
        // listBox1.ItemsSource = names;
    }
    catch (Exception ex)
    {
        // 简单的异常处理,避免程序崩溃并提示用户
        MessageBox.Show($"读取文件出错:{ex.Message}");
    }
}

代码说明

  • AppDomain.CurrentDomain.BaseDirectory:获取当前程序的运行目录,这样不管你把程序放到哪个路径下,都能准确找到txt文件。
  • 解析逻辑:针对你txt里姓名, 年龄 姓名, 年龄的格式,先拆分出每个“姓名+年龄”的单元,再提取出姓名部分,确保只显示你需要的内容。
  • 异常处理:加个try-catch可以避免因为文件丢失、格式错误等问题导致程序直接崩溃,提升用户体验。

小提示

如果你的ListBox在XAML里的命名不是listBox1,记得把代码里的名称改成你实际设置的名字哦。

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

火山引擎 最新活动