先看代码:
 Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load        Dim........        If Not My.Computer.FileSystem.FileExists("D:\NGMIM.dat") Then            Form3.Show()
            Me.Hide()        Else            FileReader = New StreamReader("D:\NGMIM.dat")
            PicLocation = FileReader.ReadLine
            Earliest = FileReader.ReadLine
            Latest = FileReader.ReadLine
            FileReader.Close()        End If        Label1.Text = "The local photos are between " + Latest + " and " + Earliest + "."        .........End Sub我想在Form1开始的时候判断一个文件是否存在,如果不存在则运行form3,并且关掉或者不显示Form1呢。但是如果用Form1.Hide()加上Form3.Show(),现象是form3和Form1都打开了,并且form1在前面,并且Form1_Load里面End If后的语句也都执行了。我还用Form1.Close试了一下,结果两个窗口闪一下都关了。
谁能告诉我怎么办?谢谢了

解决方案 »

  1.   

    这样你可以考虑添加一个sub main方法在任意的一个类代码中,设置项目属性中启动为sub main。
    public shared sub Main()
        if File.Exist("D:\NGMIM.dat") then 
            Application.Run(new Form1())'存在则启动form1
        else
            Application.Run(new Form3())'不存在,启动form3
        end if
    end sub
      

  2.   

    楼上正解,用sub main先判断文件是否存在,决定以那个窗口启动
      

  3.   

    正确。
    lz以后去.NET版的VB区去问,这里主要讨论的是VB6的问题。
      

  4.   

    先谢谢:)
    试过之后再散分。
    再问一句(比较弱的问题),VB NET和VB2010比较类似么?
      

  5.   

    VB.NET是VB2002~VB2010的统称。表示靠.NET框架支持的VB。
    但是VB2002~2010又在不断发展,比如VB2005支持泛型,2008支持LINQ,2010支持动态类型。
      

  6.   

    还是有问题
    在project properties的设置里面选择application type: windows form application后只能选择一个首先运行的form,不能选择main。
    我把application type选成concole application后可以选择main,但是各个form之间就不能share变量了
    怎么办?
      

  7.   

    好复杂不懂,呵呵。但是知道2010是NET了:)
      

  8.   

    在project properties的设置里面选择application type: windows form application后只能选择一个首先运行的form,不能选择main。不可能出现这个情况。你再检查下。
      

  9.   


    我上面说的就是这个意思:只能选择一个form不能选择main
    现在我自己想了个办法--做一个新的form4,在project properties里面的shut down mode选择when last form closed选择首先运行form4,让form4.visible=false,然后把上面1楼给的类似代码放在里面,但是用的是show,不是application.run()(不知道为什么不能用),最后关掉form4。似乎可以用,我再试试:)
      

  10.   

    问题已经解决,是用上面说的方法。但是为了进步,求main的用法。谢谢