private void label3_Click(object sender, EventArgs e)
        {
            Form_pos form3=new Form_pos();
            ShowInTaskbar = false;
            Hide();
            form3.ShowDialog();
            Close();
        }        private void Form_select_KeyPress(object sender, KeyPressEventArgs e)
        {
            char key = e.KeyChar;
            switch (key) {
                case (char)Keys.D1: label3.Click(); break; //这里能否直接主动去触发事件?
            }
        }求指教C#

解决方案 »

  1.   

    事件触发后也是调用一个函数,你这里为什么不直接就调用这个函数呢??例如,你lable3点击调用的是label3_Click(object sender,EventArg e),你就可以直接调用它:
    case (char)Keys.D1: label3_Click(label3,new EventArg()); break;
      

  2.   


    你好,用你的方法出错提示:事件“System.Windows.Forms.Control.Click”只能出现在 += 或 -= 的左边
      

  3.   

    label3.Click(null,null);
    蛇年马月狗日龙时
      

  4.   


    楼上几位好好笑 private void Form_select_KeyPress(object sender, KeyPressEventArgs e)
            {
                char key = e.KeyChar;
                switch (key) {
                    case (char)Keys.D1: label3_Click(null,null); break;            
                    }
            }
     
      

  5.   

    你把事件处理的操作写在一个方法里面,然后直接调用这个方法不就可以了吗?
    private void label3_Click(object sender, EventArgs e)
    {CallMethod();}private void Form_select_KeyPress(object sender, KeyPressEventArgs e)
    {CallMethod();}private void CallMethod()
    {
     Form_pos form3=new Form_pos();           
     ShowInTaskbar = false;          
      Hide();           
     form3.ShowDialog();          
      Close();
    }
      

  6.   


    你好,用你的方法出错提示:事件“System.Windows.Forms.Control.Click”只能出现在 += 或 -= 的左边
      

  7.   


    你好,用你的方法出错提示:事件“System.Windows.Forms.Control.Click”只能出现在 += 或 -= 的左边你看清楚了。你是下划线,不是用点。明白。哪来的.Click
      

  8.   


    你好,用你的方法出错提示:事件“System.Windows.Forms.Control.Click”只能出现在 += 或 -= 的左边你看清楚了。你是下划线,不是用点。明白。哪来的.Click谢谢指教,昨晚熬一通宵,有点眼拙了,谢谢。
      

  9.   

    如果要用].Click也可以:].Click += new EventHandler(label3_Click(null,null);