如果按下Form1上的按钮,如何在Form2上运行另一段代码

本文关键字:运行 一段 Form2 代码 Form1 按钮 如果 | 更新日期: 2023-09-27 18:10:08

很难提供代码来显示要做什么,但这里是运行:

我在Form1上有一个按钮,上面写着"锁定",我在Form2中有一个语句,在"锁定"被按下之前从Form1读取数据(就像所有表单加载时一样)。我希望Form1读取数据,如果"锁定"被按下,而不是之前。

有办法吗?

这是我想要运行的,如果它被按下:

private void FOne_Reader_Tick(object sender, EventArgs e)
    {
        //Reads fruit information
        //if lock on is pressed, do this:
        FOne_Reader.Enabled = true;
        Fruit fruity = new Fruit();
        string FileToRead = "../../../DLL/XML/Fruit_Event.xml";
        XmlSerializer serializer = new XmlSerializer(typeof(Fruit));
        fruity = (Fruit)XMLHandler.READXML(FileToRead, serializer);
        //if not
      ...

如果按下Form1上的按钮,如何在Form2上运行另一段代码

尝试使用events:

Form1代码:

public partial class Form1 : Form
{
    public event Action PressLock;
    public Form1()
    {
        InitializeComponent();
    }
    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);
        Form2 dlg=new Form2();
        dlg.OtherFrom=this;            
        dlg.Show();
    }
    private void lockOnButton_Click(object sender, EventArgs e)
    {
        if(this.PressLock!=null)
        {
            this.PressLock();
        }
    }
}

Form2代码:

public partial class Form2 : Form
{
    public Form2()
    {
        InitializeComponent();
    }
    Form1 form;
    public Form1 OtherFrom
    {
        get { return form; }
        set
        {
            this.form=value;
            this.form.PressLock += new Action(ReadFromForm1);
        }
    }
    public void ReadFromForm1()
    {
        // xml reading here
    }
}