C# 如何在启动时从、txt文件填充lstbox
我需要在启动时从文本文件填充列表框。我还需要从列表框中删除前2行以及所有的空行,但现在这并不重要。我目前完全无法填充列表框。以下是我目前的代码:C# 如何在启动时从、txt文件填充lstbox,c#,listbox,startup,C#,Listbox,Startup,我需要在启动时从文本文件填充列表框。我还需要从列表框中删除前2行以及所有的空行,但现在这并不重要。我目前完全无法填充列表框。以下是我目前的代码: struct CDCLocationEntry { public string name; } public partial class StartupForm : Form { private List<CDCLocationEntry> CDCList = new List<CDCLocationEntry>
struct CDCLocationEntry
{
public string name;
}
public partial class StartupForm : Form
{
private List<CDCLocationEntry> CDCList = new List<CDCLocationEntry>();
public StartupForm()
{
InitializeComponent();
}
private void ReadFile()
{
try
{
StreamReader inputFile;
string line;
CDCLocationEntry entry = new CDCLocationEntry();
inputFile = File.OpenText("P3S1 Data File For Import.txt");
while (!inputFile.EndOfStream)
{
line = inputFile.ReadLine();
CDCList.Add(entry);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void DisplayText()
{
foreach (CDCLocationEntry entry in CDCList)
{
CDCLocationListBox.Items.Add(entry.name);
}
}
private void StartupForm_Load(object sender, EventArgs e)
{
ReadFile();
DisplayText();
}
struct CDCLocationEntry
{
公共字符串名称;
}
公共部分类表格:表格
{
私有列表CDCList=新列表();
公共表格(
{
初始化组件();
}
私有void ReadFile()
{
尝试
{
StreamReader输入文件;
弦线;
CDCLocationEntry=新的CDCLocationEntry();
inputFile=File.OpenText(“用于导入的P3S1数据文件”);
而(!inputFile.EndOfStream)
{
line=inputFile.ReadLine();
添加(条目);
}
}
捕获(例外情况除外)
{
MessageBox.Show(例如Message);
}
}
私有void DisplayText()
{
foreach(CDCList中的CDCLocationEntry)
{
CDCLocationListBox.Items.Add(entry.name);
}
}
私有表单加载(对象发送方、事件参数e)
{
ReadFile();
DisplayText();
}
visual studio说我的问题在这里:
结构CDCLocationEntry
{
公共字符串名称;
}
我得到的信息是:
警告1字段“Project\u 3\u\u Section\u 1.CDCLocationEntry.name”永远不会出现
分配给,并且其默认值始终为空
我的笔记或在线帮助都没有给我答案
非常感谢您提供的任何帮助您需要在循环中创建一个
CDCLocationEntry
实例,并在此实例属性name
处指定来自文件的行
inputFile = File.OpenText("P3S1 Data File For Import.txt");
while (!inputFile.EndOfStream)
{
CDCLocationEntry entry = new CDCLocationEntry();
entry.name = inputFile.ReadLine();
CDCList.Add(entry);
}
您的实际代码只在循环外部创建一个
CDCLocationEntry
实例,并且在不向name
属性分配任何内容的情况下,在每个循环中添加相同的实例。您需要在循环内部创建一个CDCLocationEntry
实例,并在该实例属性name
处分配行来自你的档案
inputFile = File.OpenText("P3S1 Data File For Import.txt");
while (!inputFile.EndOfStream)
{
CDCLocationEntry entry = new CDCLocationEntry();
entry.name = inputFile.ReadLine();
CDCList.Add(entry);
}
您的实际代码只在循环外创建了一个
CDCLocationEntry
实例,并且在没有为name
属性分配任何内容的情况下,在每个循环中添加了相同的实例。您似乎在从文件中读取一行文本,但对其不做任何处理。实际上,您是在向li中添加一个空的CDCLocationEntryst没有来自该行的信息。更重要的是,您正在为每行文本添加相同的实例。看起来您正在从文件中读取一行文本,但对其不做任何操作。实际上,您正在向列表中添加一个空的CDLocationEntry,而没有来自该行的信息。更重要的是,您正在为每行文本添加相同的实例是的,谢谢,我会在网站允许的时候把这个标记正确。是的,谢谢,我会在网站允许的时候把这个标记正确。