나는 mdichild와 draganddrop에 대한 이벤트 핸들러를 가지고 있으므로, 이미지 파일을 내 양식에 놓으면 그 이미지와 함께 picturebox (name = dpic)가 생성됩니다.각 컨트롤에 이벤트 핸들러를 만들지 않고 마우스 포인터 아래에서 컨트롤의 이름을 가져 오는 방법은 무엇입니까?
나는 dpic_Click을위한 다른 이벤트 핸들러를 가지고 있으므로 이미지를 클릭하면 폼의 텍스트가 해당 이미지의 이름이됩니다.
처음으로 이미지를 놓은 후 다른 dpic이 생성됩니다. 동일한 이름을 가진 두 개의 cotrol을 가질 수 없기 때문입니다. C#은 자동으로 이름을 변경하고 내 이벤트 핸들러는 내가 놓은 마지막 이미지에 대해서만 작동합니다. 마우스 포인터 아래에있는 컨트롤의 이름을 가져 오는 mdichild 이벤트 핸들러를 간단하게 변경할 수 있다면 내가 가리키고있는 이미지를 뒤로. 여기
UPDATE 내 코드입니다, 내 mdichild에 떨어 뜨릴에 대한 이벤트 처리기를 만들어 :
void mdiChild_DragDrop(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
dpic = new PictureBox() ;
string[] filepath = (string[])e.Data.GetData(DataFormats.FileDrop);
Image image = Image.FromFile(filepath[0]);
dpic.Image = image;
dpic.Tag = Path.GetFileName(filepath[0]);
this.ActiveMdiChild.Controls.Add(dpic);
dpic.ContextMenuStrip = this.contextMenuStrip1;
this.ActiveMdiChild.Refresh();
dpic.BringToFront();
this.ActiveMdiChild.ActiveControl = dpic;
dpic.Click += new EventHandler(dpic_Click);
// _____this helped me do it_________________________________________________
foreach (Control c in this.ActiveMdiChild.Controls)
{
c.Click += new EventHandler(c_Click);
}
// ________________________________________________________________________
}
}
WPF? 실버 라이트? Winforms? ASP? 플랫폼에 대해 말하면 해결책에 대해 더 잘 알고 있습니다. –
내 플랫폼은 Windows Vista입니다. – Pedrum
코드 스 니펫을 제공하지 않았기 때문에 사용자가 답변을 할 때 추측 할 수 있으며 답변을 통합하기가 어려울 수 있습니다. 사람들이 귀하의 특정 문제에 대해 더 나은 답변을 제공 할 수 있도록 코드를 제공하십시오. –