当前位置:编程学习 > C#/ASP.NET >>

各位高手,请帮忙啊!!!(关于C#)

有一排picturebox控件,我点击了一个,后续代码中,我想知道之前我点击了哪个picturebox控件,请问如何获取。 --------------------编程问答-------------------- DoIt(object sender,EventArgs e)
{
picturebox pb1=(picturebox)sender;
......
} --------------------编程问答-------------------- 方法很多。比较笨的一种是为每一个控件编上号,然后点的时候为这这个编号赋值。在后续的代码里判断。 --------------------编程问答-------------------- 如果你想在众多的picturebox中找到你点击的其中一个,那么你得把这些所有的picturebox放在同一个容器中,然后再循环这个容器中的所有picturebox。当然在这之前你得定义一个ClickName,用ClickName去得到你点击的picturebox名字。 --------------------编程问答-------------------- 假设你的picturebox的鼠标点击事件的响应函数是:
        private void pictureBox3_Click(object sender, EventArgs e)
        {
            PictureBox p = sender as PictureBox;

            MessageBox.Show(p.Name);
        }
那么,你将所有的pictruebox的click事件都设置为这个函数,那么点击不同的picturebox的时候,函数中p就指向了你点击的picturebox了 --------------------编程问答--------------------
引用 3 楼 conniezhixi 的回复:
如果你想在众多的picturebox中找到你点击的其中一个,那么你得把这些所有的picturebox放在同一个容器中,然后再循环这个容器中的所有picturebox。当然在这之前你得定义一个ClickName,用ClickName去得到你点击的picturebox名字。

超级期待您的进一步指导,我理解了你的意思,可是还是不知道怎么操作,你有没有相关的代码或者什么的,发给我一下。期待ing~ --------------------编程问答-------------------- 你的picturebox必然是有事件的,
1、如果每个picturebox都有一个唯一的单击事件的话那就可以写死,做到一一对应,但这样比较麻烦。
2、如果是共用一个事件可以通过事件的sender参数获得控件名,
picturebox pb=(picturebox)sender;
此时pb就是你点击的那个picturebox控件了 --------------------编程问答--------------------
引用 4 楼 gdy__gdy 的回复:
假设你的picturebox的鼠标点击事件的响应函数是:
  private void pictureBox3_Click(object sender, EventArgs e)
  {
  PictureBox p = sender as PictureBox;

  MessageBox.Show(p.Name);
  }
那么,你将所有的pictruebox的click事件都设……

我是想在picturebox4中知道之前那个p.Name(也就是picturebox3),但是picbox4中的sender指的是picbox4,并不是picbox3.假如定义成全局的话,有没有sender了。 --------------------编程问答-------------------- 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);
        }
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,