2011-03-09 5 views
1

런타임에 그림 상자 컨트롤을 많이 만들고 양식에 배치하는 폼이 있습니다. 지금 내 질문에 (런타임에) 선택되어 있고 keybord "삭제"입력 한있는 그림 상자를 삭제할 수 있습니다. 덕분에 .런타임에 선택한 컨트롤을 삭제할 수있는 방법

+1

메이크업 사용 : http://msdn.microsoft.com/en-us/library/system.windows.forms.picturebox.keypress.aspx –

답변

1

시도에서 KeyPress 이벤트를 모니터링하는 방법에 대한이 link 참조 이

private void pictureBox1_Click(object sender, EventArgs e) 
     { 
      this.Controls.Remove(pictureBox1); 
     } 

키보드에서 삭제를 선택하면 그림에 초점이 맞춰집니다. PictureBox.KeyPress의

protected override bool ProcessCmdKey(ref Message msg, Keys keyData) 
     { 
      if (keyData == Keys.Delete) 
      { 
       if(pictureBox1.Focus()) 
       { 
        this.Controls.Remove(pictureBox1); 
       } 
       return true; 
      } 
      return base.ProcessCmdKey(ref msg, keyData); 
     } 

감사

2

는 PictureBox.KeyPress의 메이크업의 사용 코드 아래 시도 : http://msdn.microsoft.com/en-us/library/system.windows.forms.picturebox.keypress.aspx

PictureBox picture = control as PictureBox; 
    if (picture != null) 
    { 
     this.Controls.Remove(picture); 
     picture.Dispose(); 
    } 
+0

이해할 수있는 방법 " 삭제 "키가 입력 되었습니까 ?? – Farna

+0

@ na.farzane = PictureBox.KeyPress 사용 : http://msdn.microsoft.com/en-us/library/system.windows.forms.picturebox.keypress.aspx –

1

당신은 컨트롤에서 PictureBox에 액세스하고 ControlCollection.Remove 방법을 사용할 수 있습니다. 여기

은 샘플 코드입니다 :

더 많은 문서를 찾을 수

// Remove the PicturBox control if it exists. 
private void deleteButton_Click(object sender, System.EventArgs e) 
{ 
    if(panel1.Controls.Contains(pictureBox)) 
    { 
     panel1.Controls.Remove(pictureBox); 
    } 
} 
here

편집 :

C#을

+0

OP에서이 작업을 수행 할 것인지 묻습니다. PictureBox의 키 이벤트 핸들러입니다. 그게 가능하니? – tiago2014

관련 문제