C#将一个按钮类调用到另一个类中

时间:2013-06-26 10:28:43

标签: c# winforms visual-studio-2010 button eventtrigger

我在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 个答案:

答案 0 :(得分: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
}

答案 1 :(得分: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
}

答案 2 :(得分:1)

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

答案 3 :(得分: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()
            }
        }