使用winforms使用c#中的方法列表

时间:2016-11-28 07:58:30

标签: c# winforms list

我正在解决一个问题,我将文本文件加载到字符串列表并显示在列表框中(我已经完成)但我现在想要一个按钮事件将列表的内容放在第二个列表框中,这是刚出现空白。我可以很容易地在VB中做到这一点,但我对C#很新,并意识到我可能遗漏了一些明显的东西。

namespace texttoarray
{


    public partial class Form1 : Form
    {

        public int counter;
        public List<string> finalList;

        public Form1()
        {
            InitializeComponent();
            List<string> finalList = AddToList();

        }

        public List<string> AddToList()
        {
            counter = 0;
            string line;
            List<string> list = new List<string>();
            System.IO.StreamReader file = new System.IO.StreamReader(@"list.txt");
            while ((line = file.ReadLine()) != null)
            {
                listBox1.Items.Add(line);
                list.Add(line);
                counter++;
            }


            //listBox2.DataSource = list;

            MessageBox.Show(counter.ToString());
            return list;
        }


        public void button1_Click(object sender, EventArgs e)
        {
            listBox2.DataSource = finalList;

        }


    }


}

1 个答案:

答案 0 :(得分:3)

您正在构造函数中创建本地列表。您应该将AddToList方法的结果分配到字段finalList

您的代码:

 List<string> finalList;
 public Form1()
 {
    InitializeComponent();
    List<string> finalList = AddToList();         //Creation of new local variable 'finalList'
 }

<强>解决方案:

List<string> _finalList;            
public Form1()
{
    InitializeComponent();

    _finalList = AddToList();            //Use '_finalList' field
}

注意:如果您使用了适当的命名约定,则可以轻松检测到这一点。即私有字段名称应以下划线开头。公共实例变量应以大写字母开头。