为什么我的方法不起作用?

时间:2013-02-12 17:43:13

标签: c#

我有一个listView的表单,通过调用showCheckedInFiles()方法填充。当我向表单添加一个简单的按钮并按下它时,该方法可以正常工作,调用该方法,但是当我从其他地方调用该方法时,它将不会填充我的listview

请帮助它让我疯了。下面的第一个方法是从另一个类中调用的,它显示在下面,我已经包含了按钮方法以供参考,正如我所说,按钮工作完美,但我需要能够在不单击的情况下调用方法一个按钮!!:

public void openProject(string projectname)
{
    projectName = projectname;
    string userDir = CSDBpath + projectname + "\\checkedOUT\\" + userName;
    if (!Directory.Exists(userDir)) //Does the user's directory exist, if not, create it
    {
        Directory.CreateDirectory(userDir);
    }
    showCheckedInFiles();
 }

 private void button3_Click(object sender, EventArgs e)
 {
    showCheckedInFiles();
 }

调用上述方法的方法:

private void buttonOpenProject_Click(object sender, EventArgs e)
{
     ListView.SelectedListViewItemCollection mySelectedItems;
     mySelectedItems = listView1.SelectedItems;
     Form1 mainform = new Form1();
     string myProject = "";

     foreach (ListViewItem item in mySelectedItems)
     {
         myProject = item.Text;
     }

     mainform.openProject(myProject);
     //mainform.showCheckedInFiles();
     this.Close();
 }

2 个答案:

答案 0 :(得分:5)

buttonOpenProject_Click中,您创建了一个新的Form1隐藏实例,该实例与已经显示的已存在的实例无关。

答案 1 :(得分:0)

将ShowCheckInFiles方法移动到单独的类,并作为listview中的参数传递。这应该允许您使用该方法,无论您在何处调用它。

例如......

SomeClass.ShowCheckInFIles(ListView1的);