#vb.net #forms #visual-studio-2008
#vb.net #формы #visual-studio-2008
Вопрос:
у меня есть форма входа, которая отправляет вас, если логин правильный, в главное меню … в главном меню есть кнопки, ведущие к другим формам. при нажатии кнопки скрывается главное меню и отображается другая форма. но проблема в том, что когда главное меню скрывается и появляется другое, главное меню снова открывается само по себе, и каждый раз, когда вы его закрываете, оно открывается снова. это сводит меня с ума. вот код :-
Public Class mainmenu
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Me.Hide()
Maintenance.Show()
End Sub
Private Sub mainmenu_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
If Login.c1 <> 0 Then
Me.memberbtn.Visible = True
Else
Me.memberbtn.Visible = False
End If
End Sub
Private Sub memberbtn_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles memberbtn.Click
Me.Hide()
Member.Show()
End Sub
End Class
проверьте события нажатия. программа не выдает мне никаких ошибок. пожалуйста, помогите.
Комментарии:
1. Есть ли у участника или формы сопровождения какой-либо код, который открывает форму главного меню?
2. да, у каждой формы есть кнопка «Назад», при нажатии на которую скрывается текущая форма и снова отображается главное меню. то же, что и выше.
3. Откуда вы знаете, что «каждый раз, когда вы закрываете ее, она открывается снова», потому что, если это из-за кода, он будет отображаться сразу после скрытия, человек не сможет его увидеть. Я имею в виду, есть ли у вас какой-либо код в двух других формах, который связан с вашей формой главного меню?
4. кнопка просто скрывает главное меню, а затем показывает форму обслуживания или участника. я даже удалил кнопку «Назад» в каждой форме, и она по-прежнему появляется из ниоткуда. нет, между ними нет связи с формой главного меню. и что касается ее закрытия, я говорю о закрытии ее из окна управления.
Ответ №1:
Вы разместили неправильный код. Вы, должно быть, что-то сделали, чтобы меню снова стало видимым, когда пользователь закрывает форму. Это код, который вызывает проблему.
Давайте создадим другую ее версию, в которой нет этой проблемы. Вам нужно прослушать событие FormClosed, чтобы узнать, что меню должно снова стать видимым. Напишите небольшой вспомогательный метод, который гарантирует это:
Private Sub DisplayForm(ByVal frm As Form)
AddHandler frm.FormClosed, AddressOf DisplayMenu
frm.Show()
Me.Hide()
End Sub
Private Sub DisplayMenu(ByVal sender As Object, ByVal e As EventArgs)
Me.Show()
End Sub
Обработчик события нажатия кнопки теперь прост:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
DisplayForm(New Maintenance())
End Sub
Вы можете дополнительно улучшить метод DisplayForm. Весьма вероятно, что вы захотите установить для свойства StartPosition формы значение manual и установить его свойство Location таким образом, чтобы формы отображались в определенном месте на экране.