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

C# Winform中ComboBox与ListBox读取文本文件内容不显示问题

问题原因

你的PopulateBoxes方法中读取文件的循环条件写反了:

  • 当前使用的while (inputFile.EndOfStream)含义是当流已经读取到文件末尾时,才执行循环内的代码
  • 刚打开文件时流的位置在文件开头,EndOfStream值为false,所以循环体一次都不会执行,自然没有数据添加到控件中

修复方案

把两处读取文件的循环条件都加上取反符!,改成while (!inputFile.EndOfStream)即可,修改后的PopulateBoxes代码如下:

private void PopulateBoxes()
{
    try
    {
        StreamReader inputFile;

        inputFile = File.OpenText("Flavors.txt");
        // 未到文件末尾时持续读取行
        while (!inputFile.EndOfStream)
        {
            flavorsComboBox.Items.Add(inputFile.ReadLine());
        }
        inputFile.Close();

        inputFile = File.OpenText("Toppings.txt");
        // 同上修改循环条件
        while (!inputFile.EndOfStream)
        {
            toppingsListBox.Items.Add(inputFile.ReadLine());
        }
        inputFile.Close();
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
        this.Close();
    }
}

可选优化建议

  • 可以给StreamReader加上using语句,无需手动调用Close(),资源会自动释放,避免异常场景下的资源泄漏问题
  • 可以先调用File.Exists()判断目标文件是否存在,提前做缺失提示,避免文件丢失时直接退出程序

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 01:45:04