在设计时如何让MenuStrip使用自定义的ToolStripMenuItem?清楚一点讲就在ToolStripMenuItem上扩展了一些属性和方法,在Design-Time拖放MenuStrip控件(或者它的子类)时想使用这个新的ToolStripMenuItem而不是原来的那个。这个问题不仅仅存在于MenuStrip中,几乎所有有Collection的控件都有类似的问题。在网上找了一周了,未果。等待高人解答,up有分。

解决方案 »

  1.   

    new 一个自定义的ToolStripMenuItem
    再一个个往MenuStrip的Items里加
      

  2.   

    lz是不是要实现ToolStripMenuItem在设计时的拖放添加等?
      

  3.   

    继承一个自己的可设计的MenuStrip_xxx控件
      

  4.   

    全世界知道不我不知道,总之我不知道,UP AND MARK
      

  5.   

    sbshu() ( )
    new 一个自定义的ToolStripMenuItem
    再一个个往MenuStrip的Items里加设计时,如何加?
      

  6.   

    danjiewu(阿丹) 
    lz是不是要实现ToolStripMenuItem在设计时的拖放添加等?是在添加了一个MenuStrip后,在MenuStrip里面添加ToolStripMenuItem时,添加的是新写的ToolStripMenuItem而不是系统自带的。
      

  7.   

    gare1000(一夜也痴情/爱钻裙子)
    继承一个自己的可设计的MenuStrip_xxx控件关键就在如何继承。
      

  8.   

    liujiwe79(专业做控件) 
    自己派生重新写派生的这个类该如何写?我已经试过很多方法,都不能解决在设计器里通过鼠标操作添加菜单项时只能添加默认项的问题。
    麻烦关于这部分给个简单的code示例,多谢!
      

  9.   

    添加你的类文件的时候选择 Add Component
    然后把 :Component 改成 :ToolStripMenuItem
      

  10.   

    呵呵,碰到过,用微软的控件 WebControls 需要下载 
      

  11.   

    danjiewu(阿丹)
    添加你的类文件的时候选择 Add Component
    然后把 :Component 改成 :ToolStripMenuItem然后如何做?可否说的具体点?多谢!
      

  12.   

    qiri07(俺家金毛de地位比俺高) 
    呵呵,碰到过,用微软的控件 WebControls 需要下载 可否提供个链接?
      

  13.   

    up,高手进来帮帮忙。
    http://community.csdn.net/Expert/topic/5431/5431517.xml?temp=.5756342
      

  14.   

    重写个类,继承 ToolStripMenuItem ,加一些自已要的属性和方法,很方便:public class MyToolStripMenuItem : ToolStripMenuItem
    {
    }
      

  15.   

    Jinwmmail()有没有试过如何将它加到MenuStrip里?
      

  16.   

    有没有试过如何将它加到MenuStrip里?
      

  17.   

    纯up
    ------------------------------------------------------------------------------------
                          空間域名出售.上海京拓.www.kingtoo.com   
      

  18.   

    MenuStrip中的ToolStripMenuItem是继承于ToolStripDropDownItem类的。如果你需要对它进行重写,可以直接对ToolStripDropDownItem类进行一下重写即可完成在设计时通过设计视图对它进行实例化。
      

  19.   

    真是全求没人知啊,我这个问题也是http://community.csdn.net/Expert/topic/5431/5431517.xml?temp=.5756342
      

  20.   

    cocosoft() 
    如果这么简单就好了,可以亲自试试,看是什么效果。
      

  21.   

    Jinwmmail() 
    重写个类,继承 ToolStripMenuItem ,加一些自已要的属性和方法,很方便:
    public class MyToolStripMenuItem : ToolStripMenuItem
    补充:
    直接用ToolStripMenuItem拖到ToolStripMenu中,在design.cs中将MyToolStripMenuItem 替代ToolStripMenuItem,那么你ToolStripMenu中的Item就是MyToolStripMenuItem了。
    笨方法!
      

  22.   

    添加Component后,系统自动生成的代码:public partial class Component1 : Component
        {
            public Component1()
            {
                InitializeComponent();
            }        public Component1(IContainer container)
            {
                container.Add(this);            InitializeComponent();
            }
        }把public partial class Component1 : Component
    改为public partial class Component1 : ToolStripMenuItem
    编译之后就会在Toolbox的以项目名为名字的一栏里找到Component1,可以直接在Design界面里拖放,也会在MenuStrip的添加列表里出现。
    实际上不通过Add Component也可以实现这样的结果,不过能懒一点就懒一点吧。
      

  23.   

    danjiewu(阿丹)
    非常感谢你的解答。你说的这个方法实际上还有另外一种实现方式,用ToolStripItemDesignerAvailability枚举标记类也可以:[ToolStripItemDesignerAvailability(ToolStripItemDesignerAvailability.All)]public class MyToolStripMenuItem : ToolStripMenuItem{ 
        ...}接下来的剩下的问题就是,将这个类加入到ToolBox里面了,不论用你提供的方法还是我说的,如何将它设置为默认的Item呢?就是说我直接输入文字生成的类就是这个新的类,而不是原来的那个?
      

  24.   

    这个恐怕你要自己继承MenuStrip来实现了。
      

  25.   

    zhoutiance(颜色[拒绝日货]) 用的时候 我都是后来手改代码( 从 我写的那个类 new 过来).
      

  26.   

    Jinwmmail()
    手写代码的话就不需要提问了。
      

  27.   

    gare1000(一夜也痴情/爱钻裙子)
    继承一个自己的可设计的MenuStrip_xxx控件关键就在如何继承。建议楼主去学习下这篇文章:连接忘了,自己收缩下《为 Microsoft Visual Studio .NET 设计器创建可设计的组件》