在listview C#上加载简单文本文件列表

时间:2014-01-12 09:11:30

标签: c# string listview text listbox

所以我正在处理包含许多简单行的文本文件数据,我想将它们放在列表视图中,与列表框一样。我需要这个,因为我在列表框上加载一个长列表,即使它显示我的所有项目,我也无法在它上面创建一个FindString()。我将命令附加到一个组合框,并与其他小的列表一起工作,但是由于列表框限制,似乎索引引用不起作用。    所以我想知道是否可以放置,例如:

  • LINE1
  • LINE2
  • line3中
  • LINE4

我的文本文件没有这个点,我只是为了使示例垂直。 在列表视图上。我在listbox上使用了方法file.readllines来加载它,如果存在一个字符串find方法来帮助我获取行上的文本。我该怎么办?

3 个答案:

答案 0 :(得分:1)

您必须添加一个事件处理程序。例如,对于ListView Load的事件。 然后在事件处理程序中,您可以使用File类加载文件的内容。

例如你可以这样做:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfApplication2
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        // ListView Loaded - Eventhandler
        private void ListView_Loaded(object sender, RoutedEventArgs e)
        {
           string[] lines = File.ReadAllLines("E:\\test.txt");
           foreach (string line in lines)
           {
               listview.Items.Add(line);
           }
        }
    }
}

我刚刚测试了解决方案,它运行正常。 我希望我有你的意图。

Results

答案 1 :(得分:1)

您可以自己编写所需的搜索者。 这很容易。 只需迭代ListView中存在的每个数据。 然后通过if语句检查你的情况,并用结果做任何你想要的事情!

像这样:

    this.listView1.Items.Add("Test1");
    this.listView1.Items.Add("Test2");

    int Index = 0;

    foreach (ListViewItem t in this.listView1.Items)
    {
         if (t.Text == "Test1")
            Index = t.SelectedIndex;
            break;
    }

    this.listView1.Items[Index].Selected = true;

我向ListView添加了几个项目,然后使用foreach迭代它的项目,使用if语句过滤项目,最后显示我想要的项目。

答案 2 :(得分:0)

非常感谢帮助我,但我对它进行了解决,我搜索了很多扩展列表框的限制,但没有人能够帮助我,但是使用你的“foreach”代码,这种新的搜索方式帮助了我在列表框中选择我的字符串,这里是使用组合框进行evertime更新的代码,从gourgeous列表中获取所选值:

声明:

string result;

然后是组合框事件:

private void comboBox1_TextUpdate(object sender, EventArgs e)
    {
        foreach (string item in listBox1.Items)
        {
            listBox1.SelectionMode = SelectionMode.One;

                if (item == comboBox1.Text)
                {
                    result = item;
                }

        }
        listBox1.SelectedItem = result;

    }