获得对Sender控件的访问权限- c#
本文关键字:访问权 权限 访问 Sender 控件 | 更新日期: 2023-09-27 18:15:31
如何访问发件人控件(即:更改位置等)?我在一个面板中创建了一些图片框,在运行时将其单击事件设置为一个函数。我想获得用户点击的图片框的位置。我也尝试了this.activecontrol
,但它不起作用,并给出了一个控件放置在表单的位置。我使用以下代码:
void AddPoint(int GraphX, int GraphY,int PointNumber)
{
string PointNameVar = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z";
string [] PointNameArr = PointNameVar.Split(',');
PictureBox pb_point = new PictureBox();
pb_point.Name = "Point"+PointNameArr[PointNumber];
pb_point.Width = 5;
pb_point.Height = 5;
pb_point.BorderStyle = BorderStyle.FixedSingle;
pb_point.BackColor = Color.DarkBlue;
pb_point.Left = GraphX; //X
pb_point.Top = GraphY; //Y
pb_point.MouseDown += new MouseEventHandler(pb_point_MouseDown);
pb_point.MouseUp += new MouseEventHandler(pb_point_MouseUp);
pb_point.MouseMove += new MouseEventHandler(pb_point_MouseMove);
pb_point.Click += new EventHandler(pb_point_Click);
panel1.Controls.Add(pb_point);
}
void pb_point_Click(object sender, EventArgs e)
{
MessageBox.Show(this.ActiveControl.Location.ToString()); //Retrun location of another control.
}
函数AddPoint被一个循环调用来创建一个picturebox的数量,其中给出X,Y和Point number。根据代码创建的图片框命名为PointA...PointZ
在单击处理程序中,将'sender'参数强制转换为PictureBox并检查其位置。
void pb_point_Click(object sender, EventArgs e)
{
var pictureBox = (PictureBox)sender;
MessageBox.Show(pictureBox.Location.ToString());
}
Sender
是您的图片框。
void pb_point_Click(object sender, EventArgs e)
{
var pictureBox = (PictureBox)sender;
MessageBox.Show(pictureBox.Location.ToString()); //Retrun location of another control.
}