using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; using System.Drawing; namespace IControls_FireManager { // 메뉴 팝업 공통 루틴은 여기에서 구현한다 public static class _Contextmenustrip { // 메뉴 팝업 생성 // 예시 //private void uiButton2_Click(object sender, EventArgs e) //{ // // 팝업 메뉴 생성 // _Contextmenustrip.Create(uiButton2, "a;b;c", Menustrip_ItemClicked); //} //public void Menustrip_ItemClicked(object sender, ToolStripItemClickedEventArgs e) //{ // if (e.ClickedItem.Text == "삭제") // { // ; // } //} // 일반 컨트롤 (버튼,라벨) 위에 ContextMenuStrip 생성 public static void Create(Control SelectedControl, string MenuItems, ToolStripItemClickedEventHandler pToolStripItemClickedEventHandler) { // 동적 생성 ContextMenuStrip contextmenustrip = new System.Windows.Forms.ContextMenuStrip(); // 이벤트 핸들러 등록 contextmenustrip.ItemClicked += new ToolStripItemClickedEventHandler(pToolStripItemClickedEventHandler); // 아이템 추출 string[] Items = _Convert.String_to_ArrayString(MenuItems); // 아이템 추가 foreach (string item in Items) { if (item == _Text.ContextStripSeparator) { ToolStripSeparator Separator = new ToolStripSeparator(); contextmenustrip.Items.Add(Separator); } else contextmenustrip.Items.Add(item); } // 위치 지정 (호출되는 기반의 위치) Point Selected = new Point(); // 컨트롤의 오른쪽하단에 위치한다 Selected.X = SelectedControl.Width; Selected.Y = SelectedControl.Height; // 보여주기 contextmenustrip.Show(SelectedControl, Selected); } // 트리 노드 (트리뷰) 위에 ContextMenuStrip 생성 public static void Create(Control SelectedControl, Point SelectedControlLocation, string MenuItems, ToolStripItemClickedEventHandler pToolStripItemClickedEventHandler) { // 동적 생성 ContextMenuStrip contextmenustrip = new System.Windows.Forms.ContextMenuStrip(); // 이벤트 핸들러 등록 contextmenustrip.ItemClicked += new ToolStripItemClickedEventHandler(pToolStripItemClickedEventHandler); // 아이템 추출 string[] Items = _Convert.String_to_ArrayString(MenuItems); // 아이템 추가 foreach (string item in Items) { if (item == _Text.ContextStripSeparator) { ToolStripSeparator Separator = new ToolStripSeparator(); contextmenustrip.Items.Add(Separator); } else contextmenustrip.Items.Add(item); } // 위치 지정 (호출되는 기반의 위치) // Point Selected = new Point(); // 컨트롤의 오른쪽하단에 위치한다 // Selected.X = SelectedControl.Width; // Selected.Y = SelectedControl.Height; // 보여주기 contextmenustrip.Show(SelectedControl, SelectedControlLocation); } } }