要双击某控件以将其放置到 MDI 窗体中,但此控件不支持标准 Align 属性,或不是一个运行时不可见的控件。只有 PictureBox 及 Timer 控件才是可以放置到 MDI 窗体中的固有控件

解决方案 »

  1.   

    MDI窗体的控件,如果不是需要显示的,可以放在toolbar上面,隐藏起来;非常好用的;
      

  2.   

    可以在 MDIForm 中使用 Controls 集合访问控件集合。例如,使用如下代码可以将 MDIForm 中的所有控件隐藏起来:For Each Control in MDIForm1.Controls
       Control.Visible = False
    Next Control
      

  3.   

    对不起,可能我没有表达清楚.我的意思是我在主窗体上放了个picture,之后我的子窗体显示时却处在这个picture的下面了.希望能解决这个问题!  我放的这个picture是为了能在其中使用各种控件,以达到在主窗体上也能使用非picturebox 和 timer 控件的效果! 因为我还需在主窗体上使用treeview,listbox 等控件. 请大家多多指教! 谢谢!
      

  4.   

    你显示子窗体前将MDI主窗体控件隐藏
      

  5.   

    实际上你可以建一个form做为MDIform的mdichild,并将此窗体的Controlbox=False,在程序启动时也将这个form Load进来,就可以作为MDIform的背景来使用了。我最近写的一个程序就是这么用的,你可以到http://www.echinakey.com/govbuyer 去下载一下看看,如果是要类似效果。我可以告诉你具体的方法。
      

  6.   

    在MDIForm中添加PictureBox之后,它的ChildForm显示区域变小了,但是,你可以在ChildForm的Load事件中编写代码:
        <ChildFormName>.Top = -500
        <ChildFormName>.Left = -600
    随着你设置的不同数值,子窗体的位置会有所变化。
      

  7.   

    可能会出现覆盖整个背景的情况,但是可以通过调大mdiform窗口,再调整picturebox的大小.
      

  8.   

    首先将启动窗体设置为一个普通的窗体,将此窗体作为一个容器,在它的上面放一个Picturebox控件。
    启动的时候将Mdiform嵌入的此窗体中去,这里用到SetParent API函数具体做法是:
    函数声明:
    Public Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
    函数使用:
    dim Ld as long
    ld = SetParent(MDIForm1.hwnd, Picture1.hwnd)