CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 2 of 2
  1. #1
    Join Date
    Mar 1999
    Posts
    37

    Dir1_Change() Error



    Anyone know whats wrong with my code? I want the user to change the current dir, but I want want him/her to be able to choose C:\ because I want them to use sub directories. Thanks for your help....


    Private Sub Dir1_Change()


    On Error GoTo DriveHandler

    GoTo Line1


    Line1:

    ChDir Dir1.Path

    GoTo Line2

    Line2:

    If Dir1.Path = "C:\" Then

    GoTo Line1

    Else

    GoTo Line3

    Line3:

    Form1.lblDir.Caption = Dir1.Path

    GoTo Line4

    Line4:

    Unload Me


    DriveHandler:

    Dir1.Path = ""

    Exit Sub

    End Sub

  2. #2
    Join Date
    Apr 1999
    Location
    Rotterdam, Netherlands
    Posts
    278

    Re: Dir1_Change() Error



    First of all, try not to use the goto statement and the labels too much. It's quite uncommon in 'real world applications', and it makes your code quite hard to read.

    If I understand what you want to do, you want to the user to select any folder except the root of a drive?

    Guess you can't control that in the dir-change event, becasue that event fires when the user selectes another dir, or if you do that in code. But it won't work.

    What happens is this:

    The user selects the root of the c drive. The if statement is true, so you call again ChDir. But the dir hasn't changed! So I think this will end up in an endless loop.

    If I may give you a suggestion, get rid of the code in the dir-change, except where you set the caption of the label.

    I assume you have something like an Ok button, which must be pressed to 'apply' the selected path. Just check in the dir-change if the selected folder is a subdirectory (never check just for C:\, or you will not allow them to select another harddrive (since most harddrive's have partitions, it's quite common that D:\ is also a local harddrive) or if it's the root. If it's the root, disable the button, else enable it.

    Hope it helps

    Crazy D

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured