有一排picturebox控件,我点击了一个,后续代码中,我想知道之前我点击了哪个picturebox控件,请问如何获取。

解决方案 »

  1.   

    DoIt(object sender,EventArgs e)
    {
    picturebox pb1=(picturebox)sender;
    ......
    }
      

  2.   

    如果你想在众多的picturebox中找到你点击的其中一个,那么你得把这些所有的picturebox放在同一个容器中,然后再循环这个容器中的所有picturebox。当然在这之前你得定义一个ClickName,用ClickName去得到你点击的picturebox名字。
      

  3.   

    假设你的picturebox的鼠标点击事件的响应函数是:
            private void pictureBox3_Click(object sender, EventArgs e)
            {
                PictureBox p = sender as PictureBox;            MessageBox.Show(p.Name);
            }
    那么,你将所有的pictruebox的click事件都设置为这个函数,那么点击不同的picturebox的时候,函数中p就指向了你点击的picturebox了
      

  4.   

    超级期待您的进一步指导,我理解了你的意思,可是还是不知道怎么操作,你有没有相关的代码或者什么的,发给我一下。期待ing~
      

  5.   

    你的picturebox必然是有事件的,
    1、如果每个picturebox都有一个唯一的单击事件的话那就可以写死,做到一一对应,但这样比较麻烦。
    2、如果是共用一个事件可以通过事件的sender参数获得控件名,
    picturebox pb=(picturebox)sender;
    此时pb就是你点击的那个picturebox控件了
      

  6.   

    我是想在picturebox4中知道之前那个p.Name(也就是picturebox3),但是picbox4中的sender指的是picbox4,并不是picbox3.假如定义成全局的话,有没有sender了。
      

  7.   

    Form上面放了4个PictureBox,名称依次为PictureBox1~PictureBox4后台代码:        private PictureBox gpb;        public Form1()
            {
                InitializeComponent();
            }        private void Form1_Load(object sender, EventArgs e)
            {
                foreach (Control c in this.Controls)
                {
                    if (c is PictureBox)
                    {
                        PictureBox pb = (PictureBox)c;
                        c.Click += new EventHandler(c_Click);
                    }
                }
            }        void c_Click(object sender, EventArgs e)
            {
                if (gpb != null)
                {
                    MessageBox.Show("上一个PictureBox的Name:" + gpb.Name);
                }
                PictureBox pb = (PictureBox)sender;
                gpb = pb;
                MessageBox.Show("当前PictureBox的Name:" + gpb.Name);
            }