【问题标题】:display content of selected item from listbox into textbox将列表框中所选项目的内容显示到文本框中
【发布时间】:2020-07-02 13:28:23
【问题描述】:

Screenshot

我有一个“简单”的问题:如何将列表框中的选定项目的内容显示到文本框中。 我试过了

//string value1 = listBox1.SelectedItem.ToString();//textBox1.Text = value1;

但它只会显示所选项目的文件名(我已经找出原因)。

我也尝试过类似的东西:

//string value1 = listBox1.SelectedItem.ToString();//textBox1.Text = File.ReadAllLines(value1);

我知道我需要将所选文件的实际路径指向“ReadAllLines”

这是我不知道如何得到它的问题,请有人可以帮助我。

【问题讨论】:

  • 你最初是如何获得文件列表(1.txt、2.txt、3.txt)的?你在某个时候有路径吗?如果这些文件都在同一个地方,则将该路径存储在类/表单级别。
  • 如果他们不在同一个地方,那么你不应该把一个纯字符串放到你的 ListBox 中。相反,将一个对象的实例添加到您的 ListBox。您可以添加一个FileInfo,然后通过设置ListBox 的DisplayMember 属性来告诉ListBox 显示.Name 属性。

标签: c# visual-studio winforms


【解决方案1】:

如果您要读取的文件位于相对于应用程序路径的位置,则使用 AppDomain.CurrentDomain.BaseDirectory 获取应用程序路径,然后使用 System.IO.Path.Combine 将该路径与您的目标相对路径(或仅文件名,如果该文件与应用程序位于同一文件夹中)。

【讨论】:

    【解决方案2】:

    在 Dialecticus 的帮助下我的解决方案:

    private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                string value1 = listBox1.SelectedItem.ToString();
                string path1 = System.IO.Path.Combine(dataPath, value1);
                textBox1.Text = System.IO.File.ReadAllText(path1);
    
            }
    

    *dataPath 包含路径与实际路径

    string dataPath = @"C: \Users\....;
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-16
      相关资源
      最近更新 更多