선택한 탭의 파일을 드래그하여 모든 탭에서 flowLayoutPanel을 포함하는 탭 컨트롤 내에 사용자 정의 컨트롤을 만듭니다. 상황에 맞는 메뉴에서 탭 페이지의 이름을 변경하고 삭제할 수 있지만, 마우스 오른쪽 버튼을 클릭하고 "제거"를 선택할 때 생성 된 버튼을 삭제할 수 있기를 원합니다. 선택한 버튼 만 삭제할 수있는 방법을 찾을 수 없습니다. .선택한 버튼을 삭제하기위한 상황에 맞는 메뉴
이 내가 버튼을 만들어야 할 것입니다 :
public void Form1_DragDrop(object sender, DragEventArgs e)
{
string[] fileList = e.Data.GetData(DataFormats.FileDrop) as string[];
foreach (string s in fileList)
{
var button = new Button();
path_app = String.Format("{0}", s);
string filename = path_app;
file_name = Path.GetFileName(path_app);
Icon icon = System.Drawing.Icon.ExtractAssociatedIcon(filename);
Bitmap bmp = icon.ToBitmap();
CustomControl custom_btn = new CustomControl(button, new Label { Text = file_name });
button.Tag = path_app;
button.BackgroundImage = bmp;
button.BackgroundImageLayout = ImageLayout.Stretch;
FlowLayoutPanel selectedFLP = (FlowLayoutPanel)tabControl1.SelectedTab.Controls[0];
selectedFLP.Controls.Add(custom_btn);
button.Click += new EventHandler(button_Click);
ContextMenu cm2 = new ContextMenu();
cm2.MenuItems.Add("Remove", new EventHandler(rmv_btn_click));
custom_btn.ContextMenu = cm2;
}
}
private void rmv_btn_click(object sender, System.EventArgs e)
{
foreach (Control X in fl_panel.Controls)
{
fl_panel.Controls.Remove(X);
}
}
어떻게 내가 바로 삭제하는 일 알기 위해 rmv_btn_click 이벤트에 보낸 사람으로 그것을 클릭 버튼을받을 수 있나요?
내가에서 보낸 사람이 버튼 "제거"입니다 이런 식으로 생각을 시도했지만 아무것도 –
을하고 있지 않습니다 컨텍스트 메뉴 .. 마우스 오른쪽 단추로 클릭하고 컨텍스트 메뉴에서 "제거"를 선택하면 삭제할 단추를 알 필요가 있습니다. –
TabIndex 속성을 사용하려고 할 수 있습니다. EventArgs에 넣고 RemoveAt()를 사용하십시오. – Gleb