// 这是动态创建的控件,控件绑定同一个事件
pictBox[1]->Click += gcnew System::EventHandler(this, &Form1::pictBox_OnClick );
pictBox[2]->Click += gcnew System::EventHandler(this, &Form1::pictBox_OnClick );private: System::Void pictBox_OnClick(System::Object^  sender, System::EventArgs^  e)
 {
 // 我能够判断是哪一个pictBox的鼠标单击事件呢?
 }
谢谢。。

解决方案 »

  1.   

    通过sender判断
    if((sender as PictureBox).Name == "pictureBox1")
    if((sender as PictureBox).Equal(pictureBox1))
      

  2.   

    pictBox pict=(pictBox )sender  //pictBox  控件类型,呵呵,不知道怎么写的了if(pict.id=="")
    {
    .....
    }
      

  3.   

    private: System::Void pictBox_OnClick(System::Object^  sender, System::EventArgs^  e) 

          pictbox类型 pictbox=sender as  pictbox类型
    } 这样就可以得到到底是哪个pictbox了
      

  4.   

    我用 sender->ToString() 得到的是PictureBox, 而我想得到的是pictBox[N]
      

  5.   

    sender可以哇~
    不过这样,不是有点儿耦合的太紧了?
      

  6.   

    for each(PictureBox^ pb in pictBox)
    {
    if(System::Object::ReferenceEquals(sender, pb))
    {
    //to do
    }
    }                                
      

  7.   

    C++/CLI 不等于 C#
    语法不一样的,各位解答问题要先看清题干
      

  8.   

    谢谢各位...看来我的回贴晚了..麻烦能用C++.NET描述详细一点吗?
      

  9.   


    请问再具体点吧,谢谢了,因为我对C++。NET不熟,谢谢了
    也怪我最开始没说清楚是C++.NET
      

  10.   

    你的pictBox的定义应该是
    array<System::Windows::Forms::PictureBox^>^ pictBox;

    System::Collections::Generic::List<PictureBox^>^ pictBox;for each类似于C#中的foreach语法,可以遍历集合中的所有元素通过比较引用是否相同可以判断是你在pictBox中的哪一个PictureBox
      

  11.   

    为什么 pb->Name 为空呢?
      

  12.   


    你的PictureBox不是通过设计器加进去的吧?
    如果是在代码里自己创建的控件,你要自己指定其Namethis->pictureBox3 = (gcnew System::Windows::Forms::PictureBox());
    this->pictureBox3->Location = System::Drawing::Point(0, 0);
    this->pictureBox3->Size = System::Drawing::Size(100, 50);
    this->pictureBox3->Name = L"My Picture box";
    this->pictureBox3->TabIndex = 0;
    this->pictureBox3->TabStop = false;
    this->pictureBox3->Click += gcnew System::EventHandler(this, &Form1::pictureBox1_Click);
      

  13.   

    private: System::Void pictBox_OnClick(System::Object^  sender, System::EventArgs^  e) 
    参数 sender 就是你触发这个事件的控件,你可以强制转换成 PictureBox 类型,然后使用其属性来判断,具体是哪一个PictureBox。
    可以考虑使用 控件的Tag属性来存储标识。
    如果有多个PictureBox,比如5个,其中第1,2个Onclick事件处理逻辑一样,第3,4个处理一样,第5个又单独是一种。
    就可以把第1,2个PictureBox的Tag设置为一样的,第3,4个的Tag是另一个值,第5个单独一个值。