两个窗体,每个窗体上都有一个按纽,如何在Form1里面调用Form2里面的那个按纽的事件?我现在是要重新打印发货单的,可是我不想在显示发货窗口,而是直接按重新打印,他就可以自动调用发货窗口里面的打印事件,来打印发货单了

解决方案 »

  1.   

    问题是那个窗口有没有创建过?如果有只是隐藏了。from2.public方法。就可。
      

  2.   

    想办法抓到Form的引用, 然后找到Button。
    直接找到Button的引用也可以。然后:
    用Button的PerformClick方法。不要试图直接弄事件。 会把你绕晕的。
      

  3.   

    就键了2个窗口,有啊,from2.public没有啊,请问下如何设置?
      

  4.   

    把事件的方法定义成委托,在Form2初始化时传过去,然后在Form1中调用该委托From2MethodHandler fmh=form2的按钮事件方法;
     
    把fmh传入form1用时触发fmh;
      

  5.   

    就键了2个窗口,有啊,from2.public没有啊,请问下如何设置?
    =======>
    这是你的一个自定义的公共的打印的方法。
      

  6.   

    委托事件是一种回调通知机制,而lz是需要调用,不要弄晕了lz.
    form2中public void PrintMethod()
    {
        控件打印。
    }form1 中from2.PrintMethod()
      

  7.   

    如果form2不是由form打开的,他们都是由应用程序或父窗口打开的。可以设form2设为全局,可给form1设一个form2的变量,打开的时候就传过去。
      

  8.   

    把你要打印的方法放在Form2里的public方法里,Form1直接掉用public方法就行  委托肯定也可以,我也不会
      

  9.   

    form1:{
    Form2 form2=... //根据你的需要把Form2 的实例传送给form2form2.button1.Click += new System.EventHandler(this.form2button1);public void form2button1(object sender, EventArges e)
      {
    ...
    //响应form2的按钮事件
      }}
      

  10.   

    首先:form2不是由form打开的,
    其次:可以设form2设为全局,可给form1设一个form2的变量,打开的时候就传过去。---这句看不懂
      

  11.   

    首先在Form2中公开一个方法:public void PrintMethod()
    {
      //把你button中的代码,复制写在这个里面
    }private void form2_button1(object sender, EventArges e) 
      { 
        PrintMethod();
      } 
    Form2 不是Form1打开的?
    Form1中这么写:
          Form2 f = Application.OpenForms["Form2"] as Form2;
          if(f != null)
          {
            f.PrintMethod();
          }