none
有關Form_Load與Form_Activated的問題 RRS feed

  • 問題

  • 想請問一下,我在Form_Activated下寫下要驗証密碼的程式而且是用inputbox來做輸入密碼的動作,但我執行時會發現會一直要求輸入密碼,我想它應該是因為Form_Activated是執行在Form_Load後面,所以輸入完密碼後當Load到Form時又執行了一下Form_Activated所以才會一直輸要輸密碼,請問有什麼方法可以解決這個問題呢?我想當一開始執行時就把Form的某些button是呈灰階的,之後要求輸密碼,密碼對了才讓某些button是True的狀態。以下是我寫在Form_Activated下的程式:

    Dim a As String
               Dim message, title As String

               Dim response As MsgBoxResult
                Dim style As MsgBoxStyle
                message = "請輸入密碼!"
                title = "密碼檢查作業"

                a = InputBox("請輸入密碼", "密碼檢查作業")
            End If

            If a = "000" Then
                button1.Enabled = True
                button2.Enabled = True

             end if

    2006年8月31日 上午 01:18

解答

  • HI,

    因為用InputBox一次只能取得使用者輸入的一項資料, 所以乾脆製作一個Form, 一次要求使用者輸入帳號和密碼會比較方便

    tihs

    2006年9月1日 上午 09:16

所有回覆

  • HI,

    您可以將要求使用者輸入密碼的功能製作在一個AuthenticateForm中, 再於應用程式的主畫面(例如叫做MainForm)的Load事件處理程序中執行下列的動作:

    Dim f as New AuthenticateForm

    if f.ShowDialog=DialogResult.Cancel Then

        Me.Close()

    End If

    就可以達到您的需求了, 只要使用者輸入的帳號和密碼正確, 就可以看到主畫面, 否則就無法執行應用程式.

    tihs

    2006年8月31日 上午 01:40
  • 請問AuthenticateForm是什麼呢?而且是不是用您的方法的話,只是先show出一個form之後輸入密碼,之後才會show出主畫面呢?可是我想要輸入密碼的form與主畫面的form一起show出來哩><"可以這樣嗎?當輸入密碼的form與主畫面的form一起show出來時,主畫面是在輸入密碼的後面且呈現灰階的,key完密碼後主畫面的某些功能會是true的狀態,有什麼方法嗎?
    2006年8月31日 上午 02:05
  • Form_Activated是指form取得焦點時所觸發的事件...當你秀出inptutbox時inptutbox取得焦點..但當inputbox關閉時from又會取得焦點..於是又會觸發Form_Activated事件..如此就會一直循環下去..

     

     

    2006年8月31日 上午 02:08
  • 那有什麼辦法解決這個問題呢?還是您認為該如果更改程式呢?
    2006年8月31日 上午 02:18
  • HI,

    AuthenticateForm指的就是您做來讓使用者輸入帳號和密碼的畫面, 您可以視需要換成您的Form的類別名稱.

    您只要在應用程式的主畫面(例如叫做MainForm)的Load事件處理程序中執行下列的動作, 輸入帳號和密碼的畫面就可以和應用程式的主畫面並存.

    如果使用者尚未登入, 要禁用主畫面中的某些功能表, 您可以在主畫面的類別中製作一個宣告成Friend的方法, 在使用者登入成功後, 由登入畫面呼叫這個方法, 由這個方法啟用主畫面上使用者登入之後才能使用的功能(例如將功能表物件或是Button物件的Enabled屬性設定為True)即可.

    Dim f as New AuthenticateForm

    f.Show()

    王寧疆

    2006年8月31日 上午 11:19
  • 我想您的意思應該是我的輸入帳號和密碼是另外一個form是吧,但我的輸入帳號和密碼只是一個inputbox而已哩><"

    另外想請教一下,inputbox可以有二個輸入的位置嗎?意思是一個inputbox上我可以同時輸入帳號與密碼,我在書上看到的都只是一個inputbox上只有一個輸入的位置而已,有可以變成二個輸入的地方的屬性嗎?

    2006年9月1日 上午 05:25
  • HI,

    因為用InputBox一次只能取得使用者輸入的一項資料, 所以乾脆製作一個Form, 一次要求使用者輸入帳號和密碼會比較方便

    tihs

    2006年9月1日 上午 09:16