需求:
    点击窗体上的一个按钮,在指定区域显示一个不属于窗体容器的ListBox。 
    即,不使用Form.Controls.Add()之类的语句,动态的生成一个ListBox并在指定的区域显示出来。
问题:
    上述的需求可能实现吗?如果可以告诉我方法;不过不行,请告诉我理由。
补充:
    1.单单用ListBox.Show()是不会显示出来ListBox的。
    2.Form.Show()可以显示出Form。
    3.ToolStripDropDown也是一个控件,ToolStripDropDown.Show()可以显示出ToolStripDropDown。
    4.Form.Show(),ToolStripDropDown.Show()都重写了Control.Show(),而ListBox.Show()没有重写,他们的Show
     有什么区别呢?
    5.控件本身都有Graphics绘制功能,没显示的原因是不是因为没有收到系统绘制消息?

解决方案 »

  1.   

    你的第五条说的很清楚了,你不添加到FORM的控件集合中是不会绘制你的listbox的
      

  2.   


    谢谢你的回帖。没想到会那么快。
    1.有什么办法,让他绘制呢?
    2.ToolStripDropDown也没有加入到Form的控件集合里,为什么能被绘制了呢?
    还望你指教。
      

  3.   

    这需求和你填不填加到FORM控件集合木有关系吧?
      

  4.   

    对了,网上流行的方法我参考了,
    比如在新建一个Form,在Form里添加ListBox;或者用ToolStripDropDown之类的控件。
    Form里添加ListBox还可以接受,ToolStripDropDown就有一点牵强了。如果用Form里添加ListBox的方法的话,焦点的问题又让人头疼。
    有人说,用WindowsAPI的SHOW方法+TopMost可以实现,
    我发现第一次Form.Show()的时候焦点仍然被获得了。只是在后续的Form.Show()的时候才不主动获得焦点。
      

  5.   

    ToolStripDropDown dropDown = new ToolStripDropDown();
    dropDown.Item.Add(...);
    dropDown.Show()
    这三条语句就可以显示出了ToolStripDropDown了。
    您说的【控件的控件集合】指的是什么?用什么语句来描述?
      

  6.   

    的确不是很有关系。只是
    控件不添加到FORM控件集合就无法显示。
    直接用FORM又有焦点自动转移的问题。
    所以不知道怎么办了。