📄 popupmenu.cs
字号:
using System;
using System.Collections;
using System.Text;
using System.Windows.Forms;
namespace CodeTemplate
{
internal class TemplateMenuItem: MenuItem
{
public TemplateMenuItem(String name):
this(null, name, null)
{
}
public TemplateMenuItem(String templateText, String name, EventHandler eh):
this(templateText, name, eh, 0)
{
}
public TemplateMenuItem(String templateText, String name, EventHandler eh, Int32 id):
base(name, eh)
{
m_templateText = templateText;
m_id = id;
}
public String TemplateText
{
get { return m_templateText; }
set { m_templateText = value; }
}
public Int32 Id
{
get { return m_id; }
}
private String m_templateText;
private Int32 m_id;
}
internal class TemplatePopupMenu: ContextMenu
{
public TemplatePopupMenu()
{
m_scopes = new Stack();
m_scopes.Push(MenuItems);
}
public void Clear()
{
if(MenuItems.Count > 0)
MenuItems.Clear();
}
public void Add(String name)
{
Add(name, null, 0);
}
public void Add(String name, String text)
{
Add(name, text, 0);
}
public void Add(String name, String text, Int32 id)
{
CurrentScope.Add(new TemplateMenuItem(text, name, m_eh, id));
}
public void Update(String text)
{
m_mi.TemplateText = text;
m_mi.Click += m_eh;
}
public void AddSeparator()
{
CurrentScope.Add(new TemplateMenuItem("-"));
}
public TemplateMenuItem EnterScope(String name)
{
m_mi = new TemplateMenuItem(name);
CurrentScope.Add(m_mi);
m_scopes.Push(m_mi.MenuItems);
return m_mi;
}
public void LeaveScope()
{
m_scopes.Pop();
}
public Boolean EnableTemplateItems
{
set
{
foreach(TemplateMenuItem mi in MenuItems)
{
if(mi.Id >= 0)
mi.Enabled = value;
}
}
}
public Boolean IsBalanced
{
get { return CurrentScope == MenuItems; }
}
public Menu.MenuItemCollection CurrentScope
{
get { return (Menu.MenuItemCollection)m_scopes.Peek(); }
}
public void PopAll()
{
m_scopes.Clear();
m_scopes.Push(MenuItems);
}
public EventHandler EventHandler
{
get { return m_eh; }
set { m_eh = value; }
}
private Stack m_scopes;
private EventHandler m_eh;
private TemplateMenuItem m_mi;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -