_Contextmenustrip.cs 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Windows.Forms;
  6. using System.Drawing;
  7. namespace IControls_FireManager
  8. {
  9. // 메뉴 팝업 공통 루틴은 여기에서 구현한다
  10. public static class _Contextmenustrip
  11. {
  12. // 메뉴 팝업 생성
  13. // 예시
  14. //private void uiButton2_Click(object sender, EventArgs e)
  15. //{
  16. // // 팝업 메뉴 생성
  17. // _Contextmenustrip.Create(uiButton2, "a;b;c", Menustrip_ItemClicked);
  18. //}
  19. //public void Menustrip_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
  20. //{
  21. // if (e.ClickedItem.Text == "삭제")
  22. // {
  23. // ;
  24. // }
  25. //}
  26. // 일반 컨트롤 (버튼,라벨) 위에 ContextMenuStrip 생성
  27. public static void Create(Control SelectedControl, string MenuItems, ToolStripItemClickedEventHandler pToolStripItemClickedEventHandler)
  28. {
  29. // 동적 생성
  30. ContextMenuStrip contextmenustrip = new System.Windows.Forms.ContextMenuStrip();
  31. // 이벤트 핸들러 등록
  32. contextmenustrip.ItemClicked += new ToolStripItemClickedEventHandler(pToolStripItemClickedEventHandler);
  33. // 아이템 추출
  34. string[] Items = _Convert.String_to_ArrayString(MenuItems);
  35. // 아이템 추가
  36. foreach (string item in Items)
  37. {
  38. if (item == _Text.ContextStripSeparator)
  39. {
  40. ToolStripSeparator Separator = new ToolStripSeparator();
  41. contextmenustrip.Items.Add(Separator);
  42. }
  43. else
  44. contextmenustrip.Items.Add(item);
  45. }
  46. // 위치 지정 (호출되는 기반의 위치)
  47. Point Selected = new Point();
  48. // 컨트롤의 오른쪽하단에 위치한다
  49. Selected.X = SelectedControl.Width;
  50. Selected.Y = SelectedControl.Height;
  51. // 보여주기
  52. contextmenustrip.Show(SelectedControl, Selected);
  53. }
  54. // 트리 노드 (트리뷰) 위에 ContextMenuStrip 생성
  55. public static void Create(Control SelectedControl, Point SelectedControlLocation, string MenuItems, ToolStripItemClickedEventHandler pToolStripItemClickedEventHandler)
  56. {
  57. // 동적 생성
  58. ContextMenuStrip contextmenustrip = new System.Windows.Forms.ContextMenuStrip();
  59. // 이벤트 핸들러 등록
  60. contextmenustrip.ItemClicked += new ToolStripItemClickedEventHandler(pToolStripItemClickedEventHandler);
  61. // 아이템 추출
  62. string[] Items = _Convert.String_to_ArrayString(MenuItems);
  63. // 아이템 추가
  64. foreach (string item in Items)
  65. {
  66. if (item == _Text.ContextStripSeparator)
  67. {
  68. ToolStripSeparator Separator = new ToolStripSeparator();
  69. contextmenustrip.Items.Add(Separator);
  70. }
  71. else
  72. contextmenustrip.Items.Add(item);
  73. }
  74. // 위치 지정 (호출되는 기반의 위치)
  75. // Point Selected = new Point();
  76. // 컨트롤의 오른쪽하단에 위치한다
  77. // Selected.X = SelectedControl.Width;
  78. // Selected.Y = SelectedControl.Height;
  79. // 보여주기
  80. contextmenustrip.Show(SelectedControl, SelectedControlLocation);
  81. }
  82. }
  83. }