先上代码
        private void Form1_Load(object sender, EventArgs e)
        {
            Button btn = new Button();
            btn.Click+=new EventHandler(btn_Click);
            btn.Name = "buzhidao";
            btn.Text = "测试";
            this.Controls.Add(btn);
        }        private void btn_Click(object sender, EventArgs e)
        {
            MessageBox.Show("aa");
        }
动态生成一个按钮,当我点击鼠标左键的时候可以弹出AA 现在我想点击鼠标右键的时候显示这个按钮的name属性请问应该怎么做?不用全局HOOK

解决方案 »

  1.   

          this.MouseClick += new MouseEventHandler(SC_ExtendWorkView_MouseClick);
                 void SC_ExtendWorkView_MouseClick(object sender, MouseEventArgs e)
            {
                if (e.Button== MouseButtons.Right)
                {
                    MessageBox.Show("aaa");
                }
            }
    这个肯定可以,你试试吧!
      

  2.   


            private void Form1_Load(object sender, EventArgs e)
            {
                Button btn = new Button();
                btn.MouseClick +=new EventHandler(MouseClick_Click);
                btn.Name = "buzhidao";
                btn.Text = "测试";
                this.Controls.Add(btn);
            }        private void MouseClick_Click(object sender, MouseEventArgs e)
            {
                 if (e.Button== MouseButtons.Right)
                 {
                     MessageBox.Show((sender as Button).Name)
                 }
                 else if(e.Button==MouseButtons.Left)
                 {
                     MessageBox.Show("aa");
                  }
            }
      

  3.   

    2楼的`你点哪里都会弹`这样不行`如果自动生成了四个按钮呢?怎么获取各个button的name属性?
    3楼的根本不触发!!
    昨天晚上弄出来了
            private void Form1_Load(object sender, EventArgs e)
            {
                set();
            }
            private void set()
            {
                Button btn = new Button();
                //btn.MouseDown+=new MouseEventHandler(btn_MouseDown);
                btn.MouseDown += delegate(object sender, MouseEventArgs e) { Click_Singel(sender, e); };
                btn.Name = "buzhidao";
                btn.Text = "测试";
                this.Controls.Add(btn);
            }        private void Click_Singel(object sender, MouseEventArgs e)
            {
                MessageBox.Show((sender as Button).Name);
            }