设计器是个天坑,怕都爬不起来那种
DesignSurface的右键菜单要用MenuCommandService
继承MenuCommandService,重写ShowContextMenu方法
public class MyMenu : MenuCommandService
{
public MyMenu(IServiceProvider serviceProvider) : base(serviceProvider)
{
}
public override void ShowContextMenu(CommandID menuID, int x, int y)
{
ContextMenuStrip menu = new ContextMenuStrip();
menu.Items.Add("Test");
menu.Show(new Point(x, y));
base.ShowContextMenu(menuID, x, y);
}
}
private void Form1_Load(object sender, EventArgs e)
{
DesignSurface surface = new DesignSurface();
surface.BeginLoad(typeof(UserControl));
Control designview = (Control)surface.View;
designview.Size = new Size(818, 613);
Controls.Add(designview);
IServiceContainer servicecontainer = (IServiceContainer)surface.GetService(typeof(IServiceContainer));
servicecontainer.AddService(typeof(IMenuCommandService), new MyMenu(surface));
}
应用就是加到DesignSurface的服务里面去
接下来就是ContextMenuStrip操作