各位高手,请帮忙啊!!!(关于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了 --------------------编程问答--------------------
超级期待您的进一步指导,我理解了你的意思,可是还是不知道怎么操作,你有没有相关的代码或者什么的,发给我一下。期待ing~ --------------------编程问答-------------------- 你的picturebox必然是有事件的,
1、如果每个picturebox都有一个唯一的单击事件的话那就可以写死,做到一一对应,但这样比较麻烦。
2、如果是共用一个事件可以通过事件的sender参数获得控件名,
picturebox pb=(picturebox)sender;
此时pb就是你点击的那个picturebox控件了 --------------------编程问答--------------------
我是想在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#