单击列表框项目并在标签中显示文本文件文本

问题描述 投票:0回答:2

我无法单击列表框项目(列表框中的项目是文件夹中的 .txt 文件)并显示 .txt 文件中的值。 .txt 文件中的值均用“,”分隔,我希望每个拆分项目显示在表单的标签中。 我的文件路径是:System.AppDomain.CurrentDomain.BaseDirectory +“data” 我的 .txt 文件名是列表框中所选项目的名称。

我对应该发生的事情有一个基本的想法,但我不知道如何用代码表达这一点。 我的代码:

private void custList_MouseClick(object sender, MouseEventArgs e)
    {
        string foldr = System.AppDomain.CurrentDomain.BaseDirectory + "data";
        string file = custList.SelectedIndex.ToString();

    }
c# label text-files
2个回答
1
投票

在我继续回答这个问题之前,请阅读如何提问。这将帮助您更好地了解这个社区并提出更好的问题(以获得更好的支持)。 接下来,做一些研究。乍一看,你好像在要求别人帮你做作业。无论如何,我不是来对你严厉的。我会向你指出一些事情。尝试理解它们并利用它们。

请注意,尽管看起来如此,但我不喜欢用勺子喂食,所以要真诚并进行研究。

让我们从您的文本文件开始。正如您所提到的,它包含。 C# 是一种多功能且成熟的语言,它具有许多预先构建的函数、方法、类来帮助提升您的编程体验。这样的方法是 ReadAllText,它是

File
类的一部分。用最简单的话来说,此方法打开一个文本文件,读取它,返回它的值。此方法的使用示例如下:

string TextFromFile = File.ReadAllText(File_Path_Goes_Here);

继续...您的文本文件有多个值用逗号(,)分隔。在这种情况下,每个值都需要在检索或显示时作为单独的值读取。所以,你想要一个

List
的价值观,故事结束了。在 C# 中,您有多种“通用列表”可供使用。由于文本文件中的values是简单的字符串,因此您可以在这方面使用List<string>
List<string>
的基本用法示例是:

List<string> TestList1 = new List<string>(); TestList1.Add("First Value"); TestList1.Add("Second Value"); ///or List<string> TestList1 = new List<string>(){ "First Value", "Second Value" };

在您的具体情况下,
File.ReadAllLines

值得一个例子。该方法打开一个文本文件,读取它,然后关闭它。当然,它返回从文本文件读取的值,作为数组。因此,当将值传递给通用列表时,您可以简单地使用此方法。示例:


...... new List<string>(File.ReadAllLines(Path_Of_File_Goes_Here));

这里唯一的问题是文本文件中的 
值在一行中(可能)

并且 用逗号分隔。那么,您认为这里应该做什么? ReadAllText还是

ReadAllLines
?我会把它留给你。

从文件中读取值后,我们可以使用

Split

函数根据每次出现的逗号 (,) 来分割值。一个简单的例子:


List<string> NameList = "Josh,Riley".Split(',').ToList<string>();

最后但并非最不重要的一点是,问题的标题似乎与帖子本身没有任何关系,您可以看一下:

控制点击事件

ListBox.GetItemText

提示:

SelectedItem 类的

ListBox
属性返回或设置列表框的选定项目。

我希望这对您有所帮助。请注意上面提到的所有内容。一开始可能有点难以跟进,但请记住,

一致性是缺乏想象力的标志

....是的,这不是我的原话。明白了!


0
投票

要从文件中获取值:

public string[] GetValues() { string[] values; using(StreamReader sr = new StreamReader(Path.Combine(foldr, file)) { string text = sr.ReadToEnd(); values = text.Split(','); } return values; }

然后你可以使用数组来显示它们:

public void Main() { string[] values = GetValues(); foreach(var value in values) { Console.WriteLine(value); } }

© www.soinside.com 2019 - 2024. All rights reserved.