1

我在 C# 中进行 OO 编程并遇到了问题。我在这里得到了这段代码(这是按钮btn_delete_click

            if (dialogResult == DialogResult.Yes)
            {
                if (objBestand.bestandsnaamString == file2)
                {
                    objBestand.VerwijderBestand();

                     // btn_ophalen_click?
                }
            }

现在我想在“”处调用另一个按钮的“功能btn_ophalen_click?

这是我想在那里调用的按钮

    private void btn_Ophalen_Click(object sender, EventArgs e)
    {
            string PathString;  //  maak string aan 
            PathString = textBox1.Text + @":\" + textBox2.Text; //vul_list string mwet waarde
            objBestanden = new clsBestanden();
            objBestanden.Zoekbestanden(PathString);  // Roep method Zoekbestanden aan 
            vul_list();  // vul lijst of form
    }

当我单击 时btn_delete_click,它会删除一个文件,然后必须“触发”btn_ophalen_click 我希望我提供了足够的信息。

4

4 回答 4

5

将事件称为方法是不好的做法。想要的最好方法是将事件代码移动到单独的方法:

 //part of btn_delete_click event code
 if (dialogResult == DialogResult.Yes)
  {
      if (objBestand.bestandsnaamString == file2)
      {
          objBestand.VerwijderBestand();

          Ophalen();
      }
  }

private void btn_Ophalen_Click(object sender, EventArgs e)
{
    Ophalen();
}

private void Ophalen()
{
    string PathString;  //  maak string aan
    PathString = textBox1.Text + @":\" + textBox2.Text; //vul_list string mwet waarde
    objBestanden = new clsBestanden();
    objBestanden.Zoekbestanden(PathString);  // Roep method Zoekbestanden aan 
    vul_list();  // vul lijst of form
}
于 2013-06-26T10:33:15.027 回答
2

您应该始终将事件中的操作保存在单独的方法中。

private void btn_delete_Click(object sender, EventArgs e)
{
    Delete();
}

private void btn_Ophalen_Click(object sender, EventArgs e)
{
    Open();
}

private void Delete()
{
    if (dialogResult == DialogResult.Yes)
    {
        if (objBestand.bestandsnaamString == file2)
        {
            objBestand.VerwijderBestand();
            Open();
        }
    }
}

private void Open()
{
    string PathString;  //  maak string aan 
        PathString = textBox1.Text + @":\" + textBox2.Text; //vul_list string mwet waarde
        objBestanden = new clsBestanden();
        objBestanden.Zoekbestanden(PathString);  // Roep method Zoekbestanden aan 
        vul_list();  // vul lijst of form
}
于 2013-06-26T10:37:38.123 回答
1

我认为button.PerformClick();执行点击是你需要的。但更好地提取Ophalen()具有所需参数的方法并在两个按钮单击处理程序中调用它

于 2013-06-26T10:37:03.157 回答
0

你可以做这样的事情。

public void toDo()
{
 string PathString;  //  maak string aan 
        PathString = textBox1.Text + @":\" + textBox2.Text; //vul_list string mwet waarde
        objBestanden = new clsBestanden();
        objBestanden.Zoekbestanden(PathString);  // Roep method Zoekbestanden aan 
        vul_list();  // vul lijst of form
}

if (dialogResult == DialogResult.Yes)
        {
            if (objBestand.bestandsnaamString == file2)
            {
                objBestand.VerwijderBestand();
                toDo()
            }
        }
于 2013-06-26T10:31:14.937 回答