MIAIONE 2020-03-15 14:51 采纳率: 100%
浏览 317

VB.NET DesignSurface 右键菜单如何添加 (ContextMenuStrip)/ 窗体设计器内的窗体和控件四周可变大小伸缩框闪烁

VB.NET DesignSurface 右键菜单如何添加 (ContextMenuStrip)

百度知道——窗体设计器添加右键菜单
图片说明

上面的已经看过了,现在不会通过接口来实现右键菜单。

我的目的就是在窗体设计器添加右键菜单,如果有其他方法,也可以不用这个方法,C币没了,求各位给个代码。
图片说明
图片说明

窗体设计器内的窗体和控件四周可变大小伸缩框闪烁

已经尝试解决闪烁的问题,不过没有什么用,不管是SetStyle还是CreateParams都没有用,多半怀疑是动态创建导致的,因为TabControl和MenuItem还有ToolBox都重写了,就这个DesignSurface不会重写。求解决办法,目前没找到SharpDevelop,谁能提供下源码研究下也许可以。

  • 写回答

1条回答 默认 最新

  • --小小程序猿 2021-04-19 21:27
    关注

     

    设计器是个天坑,怕都爬不起来那种

    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操作

    评论

报告相同问题?

悬赏问题

  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮