1

我有 2 个表格。

表格1:

public partial class Panel1
    {
        public void ShowExport(object sender, EventArgs e)
        {
           .......
        }
    }

表格2:

public partial class Panel2
{
        public delegate void ShowExportReport(object sender, EventArgs e);
        public event ShowExportReport ShowExportClicked;

private void buttonExport_Click(object sender, RoutedEventArgs e)
        {         
           if (ShowExportClicked != null)
            {
                ShowExportClicked(sender, new EventArgs());
            }                     

        }
}

当我单击按钮时-

button.Click = buttonExport_Click

如何从Panel2.buttonExport_Click调用Panel1.ShowExport()

4

5 回答 5

2

在 Panel1 中,您必须订阅该事件:

pnl2.ShowExportClicked += new ShowExportReport(ShowExport);
于 2013-02-18T11:32:54.537 回答
2

您需要将 Panel 1 类中的 ShowExportClicked 事件的处理程序分配给 Panel 2 类对象。

     public partial class Panel1
        {
            Panel2 pnl2;
            public Panel1()
            {
               pnl2 = new Panel2();
               pnl2.ShowExportClicked += new ShowExportReport(ShowExport);    
            }

            public void ShowExport(object sender, EventArgs e)
            {
               .......
            }
        }
于 2013-02-18T11:33:21.090 回答
0

在 Form1 上创建您的活动。并在 Form2 中收听事件。

表格1:

public event EventHandler ShowExportChanged;

private void ShowExportChanged()
{
    var handler = ShowExportChanged;
    if(handler == null)
        return;

    handler(this, EventArgs.Empty);
}

public void ShowExport(object sender, EventArgs e)
{
  ShowExportChanged();
}

表格2:

pnl1.ShowExportChanged+= new OnShowExportChanged(ShowExportChanged);
于 2013-02-18T11:39:25.390 回答
0
pnl2.ShowExportClicked += ShowExport;
于 2013-02-18T11:36:45.763 回答
0

如何从 Panel2.buttonExport_Click 调用 Panel1.ShowExport()?

通过在实例化 form2 时从 form1 传递(仅必要的)信息。

Form1.cs:

void ShowForm2_Click()
{
    var form2 = new Form2();
    form2.ShowExportClicked += ShowExport;
    form2.Show();
}

现在从 Form2 你可以简单地调用ShowExport按钮点击。

于 2013-02-18T11:41:31.457 回答