就是像开始按钮一样 点击Button 的时候, 在其边上显示一个列表框。 
   自己了2个方法做,可是多不好,
   一是弹出一个窗体,控制其显示位置。
   二是用ToolStrip,代码如下
ToolStrip Test = new ToolStrip();
Test.Dock = DockStyle.None;
//放置位置(注意位置不要超过其父控件范围)
// Test.Left = 150;
// Test.Top = 100;
Test.Parent = panel1;//设定他父控件 
ToolStripDropDownButton TestButton = new ToolStripDropDownButton("Test");
//设置TestButton的事件
TestButton.MouseEnter +=..._MouseEnter;
TestButton.MouseLeave += ..._MouseLeave;
TestButton.DisplayStyle = ToolStripItemDisplayStyle.Text;
//给下拉子项添加事件
TestButton.DropDown.Items[0].MouseDown += Too_MouseEnter;
Test.Items.Add(TestButton);
   
  方法一 很明显很傻的一个方法 
  方法二有个bug就是 窗体大小变化时,下拉子项位置会停留在变化前的位置,从而脱离了Test
求一个更好的方法,或帮忙改进下方法2   谢谢

解决方案 »

  1.   

    对于Windows 来说 Button也好 winform也好 都是 窗体
    Toolbar和新窗体 有啥区别呢。。
    别把精力放在这没用的地方。最后 说一下  你咋知道 微软的开始按钮 桌面表小了不会跑别的地方去 脱离工具栏?
    我就遇到过。
    这是他们写程序的Bug,勉强算bug吧
      

  2.   

    有个三方控件 有这样的按钮,但是要显示下拉,必须点击右边那个小小箭头,用起来不是很方便,如果装在触摸屏机器上,很难点到那箭头。     其实最想要的效果就是,Click Button时候,在Button上方显示一个上拉框。就像windows开始按钮一样
      

  3.   

    可以用一个按钮和一个contentMenuStrip嘛,就是右键菜单。单击按钮时候,调用右键菜单的Show方法,
    判断位置,应该可以哦
      

  4.   

    方法2的 问题解决了,但是还是希望 做一个像 windows开始按钮一样 (因为客户要求)
      

  5.   


    这个方法我试过,可是失败了,因为我用的是menuStrip1···现在应该可以了
      

  6.   

    我觉得就是用了listbox的基类,只是重新继承了一下