Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Форма почему то не скрываеться Добавлено: 04.02.10 18:56  

Автор вопроса:  Br.Misha
Здраствуйте!
Сделал я одну программу, которая при запуске показывает окно с запросом пароля.
Вобщем есть две формы: Form1 and LoginForm1, в настройках программы сделал так, чтобы при запуске программы стартовало окно LoginForm1, а уже сама LoginForm1 при правильном вводе пароля делает Me.Hide()и Form1.Show()(тоесть LoginForm1 скрываеться и открываеться Form1).
Вот исходник LoginForm1:

Public Class LoginForm1

    Function login() As Char

        If TextBox_Username.Text = My.Settings.save_user_name And TextBox_Password.Text = My.Settings.save_password Then
            My.Settings.save_checkbox_save_user_name = CheckBox_save_user_name.Checked
            My.Settings.save_checkbox_save_password = CheckBox_save_password.Checked

            Me.Hide()
            Form1.Show()

        Else : MsgBox(TXT_user_name_or_password_is_wrong)
        End If

    End Function

    Private Sub LoginForm1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        select_language(My.Settings.save_language)

        Me.TopMost = My.Settings.save_CheckBox_top_most
        Me.Text = "WatchControl " & TXT_login

        Label_Username.Text = TXT_user_name
        Label_Password.Text = TXT_password
        CheckBox_save_user_name.Text = TXT_save_user_name
        CheckBox_save_password.Text = TXT_save_password

        CheckBox_save_user_name.Checked = My.Settings.save_checkbox_save_user_name
        CheckBox_save_password.Checked = My.Settings.save_checkbox_save_password

        If CheckBox_save_user_name.Checked = True Then TextBox_Username.Text = My.Settings.save_user_name
        If CheckBox_save_password.Checked = True Then TextBox_Password.Text = My.Settings.save_password

        If My.Settings.save_ask_password = True Then login()

    End Sub

    Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
        login()
    End Sub

    Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel.Click
        Me.Close()
    End Sub
End Class


Всё работает почти отлично - при нажатии ОК вызываеться ф-ция login() после чего, если правильно введены Имя и Пароль, скрываеться LoginForm1 и открываеться Form1. Но вот только в Form1 можна отключать запрос имя пароля, для этого нужно чтобы My.Settings.save_ask_password = True. При запуске логинформ1 проверяеться истинность My.Settings.save_ask_password:
If My.Settings.save_ask_password = True Then login()

В этом случае открываеться Form1 но НЕ скрываеться LoginForm1!!
Подскажите, пожалуйста, в чем проблема.
Заранее спасиба!

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 s12



Вопросов: 24
Ответов: 363
 Профиль | | #1 Добавлено: 04.02.10 19:44
Обычно весь подобный код (защита прог или авторизация) выносят в отдельный модуль, а в формах оставляют только вызовы процедур. В этом случае подобной проблемы просто бы не возникло...

Ответить

Номер ответа: 2
Автор ответа:
 UnDeAdZak



Вопросов: 80
Ответов: 476
 Профиль | | #2 Добавлено: 04.02.10 20:46
попробуй дописать в строчку
If My.Settings.save_ask_password = True Then login()

me.hide(), авось получицца)

Ответить

Номер ответа: 3
Автор ответа:
 Skywalker



ICQ: 300-70-6пятьЪ 

Вопросов: 62
Ответов: 545
 Web-сайт: iSkywalker.ru
 Профиль | | #3
Добавлено: 04.02.10 21:50
вот эту строку
If My.Settings.save_ask_password = True Then login()
вынеси в событие LoginForm1_Shown, скорее всего поможет

Ответить

Номер ответа: 4
Автор ответа:
 Br.Misha



Вопросов: 10
Ответов: 24
 Профиль | | #4 Добавлено: 05.02.10 00:06
Skywalker, ваш метод заработал! Спасибо!
Но всеравно мне интерестно, почему не работает так как я писал?

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам