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
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 に答える