访问Sender控件 – C#
发布时间:2020-12-16 01:49:19 所属栏目:百科 来源:网络整理
导读:如何访问发件人控件(即:更改位置等)?我在面板的运行时创建了一些图片框,将其click事件设置为一个函数.我想获取用户点击的图片框的位置.我也尝试过this.activecontrol,但它没有工作,并给出了窗体中放置的控件的位置.我使用以下代码: void AddPoint(int Gra
如何访问发件人控件(即:更改位置等)?我在面板的运行时创建了一些图片框,将其click事件设置为一个函数.我想获取用户点击的图片框的位置.我也尝试过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编号. 解决方法
在您的单击处理程序中,将’sender’参数强制转换为PictureBox并检查其Location.
void pb_point_Click(object sender,EventArgs e) { var pictureBox = (PictureBox)sender; MessageBox.Show(pictureBox.Location.ToString()); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |