单击列表框项,然后在标签中显示文本文件文本

时间:2018-12-02 18:50:11

标签: c# label text-files

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

我对应该发生的事情有基本的了解,但是我不知道如何在代码中表达这一点。 我的代码:

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

    }

先感谢

2 个答案:

答案 0 :(得分:1)

在我继续回答这个问题之前,请阅读How to ask。这将帮助您更好地了解这个社区并提出更好的问题(以获得更好的支持)。 接下来,进行一些研究。乍看之下,您似乎正在要求某人为您做作业。无论如何,我不是要对你强硬。我会指出一些事情。尝试了解它们并加以利用。

  

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

让我们从您的文本文件开始。如您所述,它包含。 C#是一种通用且成熟的语言,它具有许多预先构建的功能,方法,类,可以帮助您提高编程经验。这样的方法是ReadAllText,它是File类的一部分。用最简单的话来说,该方法打开一个文本文件,读取它,返回它的值。此方法的示例用法可能是:

string TextFromFile = File.ReadAllText(File_Path_Goes_Here);

继续...您的文本文件具有多个值,以逗号(,)分隔。在这种情况下,在检索或显示时,每个值都需要读取为一个单独的值。因此,您需要List的值,故事的结尾。在C#中,您可以使用多种generic lists。由于文本文件中的 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));

这里唯一的区别是文本文件中的值位于一行(也许)中,并且也用逗号隔开。那么,您认为这里应该做什么? ReadAllTextReadAllLines?我会把它留给你。

一旦从文件中读取了值,我们就可以使用Split函数在每次出现逗号(,)时拆分这些值。一个简单的例子:

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

最后但并非最不重要的一点是,该问题的标题似乎与帖子本身无关,这是您可以查看的内容:

Control Click Event

ListBox.GetItemText

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

我希望这会有所帮助。请注意上面提到的所有内容。一开始可能会有些困难,但是请记住,一致性是缺乏想象力的标志

....是的,那不是我的报价。知道了!

答案 1 :(得分: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);
    }
}

希望这会有所帮助。