2009-09-01 33 views
2

まず、Javaでのコーディングが最も快適です。私はC#で学習ツールとしてアプリケーションを作成しています。このアプリケーションでは、Click Event Methodからメソッドを呼び出しています。CからのメソッドのClickイベントメソッドへの引数の受け渡し

private void btnViewFile_Click(object sender, EventArgs e) { 
     GetFileNames(); 
     lblOutputPath.Text = sb; 
    } 

    private StringBuilder GetFileNames() { 
     StringBuilder sb = new StringBuilder(); 
     string[] fileNames = Directory.GetFiles(Dir); 
     foreach (string s in fileNames) 
      sb.Append(s); 

     return sb; 
    } 

は、私はより多くのモジュール化、それを維持するためにクリックしてメソッドのうち、ディレクトリ内の各ファイルのファイル名を取得するコードを抜け出すにしたいです。私はStringBuilderオブジェクトの値を取得し、それをClickイベントメソッドに戻します。

これはどのようにしても、私はJavaでそれをやります。これは有効な指針ですか、これを行うにはよりよい方法がありますか?

答えて

5

私は、これはあなたが何をしようとしてあると思う:

private void btnViewFile_Click(object sender, EventArgs e) 
{    
    lblOutputPath.Text = GetFileNames().ToString();  
}  

private StringBuilder GetFileNames() 
{   
    StringBuilder sb = new StringBuilder();   
    string[] fileNames = Directory.GetFiles(Dir);   
    foreach (string s in fileNames)    
     sb.Append(s);   
    return sb;  
} 
+0

大きいこと。ありがとう。 – pave

2

あなたGetFileNames()方法は、すでにあなたがそうあなただけのGetFileNames()からラベルのTextプロパティに返された値を割り当てる必要が無視されている値を返しています。

編集:あなたの質問を読んだ後、私はちょっと混乱しています。 GetFileNames()の値を実際にクリックされる前にボタンのクリックイベントに割り当てるか、クリックしたときに結果を使用しますか?次を使用して、クリックする前に、ボタンに値を割り当てることができます:

btnViewFiles.CommandArgument = GetFileNames().ToString(); 

あなたのボタンがクリックされたとき、あなたは次のようにCommandArgumentを読むことができます:

Button btn = (Button)(sender); 
lblOutputPath.Text = btn.CommandArgument; 
+0

結果を使いたいです。 – pave

関連する問題