2016-11-28 7 views
1

テキストファイルを文字列リストに読み込んでリストボックスに表示する問題に取り組んでいますが、今はボタンイベントで空白になっているリストボックスのリストの内容。私はVBでこれを簡単に行うことができますが、私はC#にはかなり新しいです。winformsを使用して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; 

     } 


    } 


} 
+0

'ListBox.Refresh()'しようとしましたか? – devRicher

+1

あなたはVB.NETでそれをやり取りできますか? –

+0

私は答えを投稿しました。それが今あなたのために働くかどうか見てください。 –

答えて

3

コンストラクタでローカルリストを作成しています。フィールドfinalListAddToListの結果を割り当てる必要があります。

あなたのコード:

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 
} 

注:あなたが適切な命名規則を使用している場合は、これを容易に検出している可能性があります。つまり、プライベートフィールド名はアンダースコアで始まる必要があります。パブリックインスタンス変数は大文字で始まる必要があります。

+0

ありがとうございますkrw12572 – llamafarmingguru

+0

あなたは歓迎です:) –

関連する問題