有二个窗体form1 form2 ,在form1中有一个按钮,代码为:sub command1_click()
form2.show 1
end sub这样存在的问题是,如果此时对 form2 最小化,form2的图标只显示在屏幕左上角,不在任务栏;特别麻烦的是,form1始终占在桌面上,影响做其他事情。为解决form1霸占桌面的问题,对代码进行了改进:sub command1_click()
form1.visible=false
form2.show 1
form1.visible=true
end sub这样,只要打开form2,form1就不见了,解决了霸占桌面的问题。可接着又有问题了,就是如果对 form2 最小化,任务栏什么都没有,必须退出其他程序,才能从左下角找回form2的图标。为此,特向各位大师求教,恳望指点迷津:我希望在form2.show的时候,在任务栏显示form2的图标,以便从任务栏对form2进行最小化切换;而且form1隐藏,不占住桌面,请问该如何实现?

解决方案 »

  1.   

    用   form2.show 
    后面不要带参数
    这样2个窗体都可以最小化
      

  2.   

    form1代码public CurrentState as Longprivate sub command1_click()
      currentstate=me.windowstate
      me.windowstate=1
      form2.show
    end subform2代码private sub form_unload(cancel as integer)
      form1.windowstate=form1.currentstate
    end sub如果一定要使两个窗体保持层次关系,form1代码中
      form2.show
     改为
      form2.show ,me
    不要用模式窗体
      

  3.   

    Form1 的 ShowInTaskBar = FALSE
    -----------------------------
    Form1 的 CommandButtonForm1.Hide
    Form2.Show==============================Form2 的 ShowInTaskBar = TRUE------------------------------Form2 的 Unload 事件Form1.Show ' 关闭Form2的时候,即刻显示Form1
      

  4.   

    如果Form2显示时,Form1可以隐藏,可以用8楼的代码。但是,两个窗体都应该是:
    ShowInTaskBar = True 
      

  5.   

    这个问题的要求本身就无聊,可以用其它方法替代的,不过楼主一定要这样也有办法:
    form1:
    Private Sub Command7_Click()
    Form2.Show 1
    End Subform2:
    Private Sub Form_Activate()
    Dim dwsty As Long
    dwsty = GetWindowLong(Form2.hwnd, GWL_EXSTYLE)
    dwsty = dwsty Or WS_EX_APPWINDOW And Not WS_EX_TOOLWINDOW
    dwsty = SetWindowLong(Form2.hwnd, GWL_EXSTYLE, dwsty)
    Form1.Visible = False
    Form2.Visible = False
    Form2.Visible = True
    End SubPrivate Sub Form_Unload(Cancel As Integer)
    Form1.Show
    End Subform1隐藏后form2会出现在任务栏,需要的api声明等自己加。
      

  6.   

    在Form2上也增加个窗体按钮,
    执行如下:
    Form2.Visible = False
    Form1.Show 1
    Form2.Visible = True