2009-09-01 140 views
2

首先,我非常自在地使用Java编写代码。我正在用C#创建一个应用程序作为学习工具。在这个应用程序中,我从Click事件方法调用方法。将方法中的参数传递给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; 
    } 

我想分解一下代码,它将目录中每个文件的FileNames从Click方法中取出,以使其更加模块化。我会为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 2009-09-01 18:18:01

2

GetFileNames()方法已经返回,你是忽略,所以你应该只从GetFileNames()将返回的值标签的文本属性的值。

编辑:重新读你的问题后,我有点困惑。你想在实际点击之前将你的GetFileNames()的值赋给按钮的click事件,或者在点击它时使用结果?您可以通过以下点击之前将值赋给按钮:

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

然后点击您的按钮时,你可以用下面的阅读CommandArgument:

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

我想使用结果。 – pave 2009-09-01 18:08:31