Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Прошу помощи!!! Добавлено: 21.11.08 15:11  

Автор вопроса:  cancler
Есть 3 формы. на каждой 1 кнопка. каждая кнопка "перебрасывает" пользователя на следующую форму. Чтобы избежать случайного "закрытия" формы и доступа пользователя к листу книги пишу.
Private Sub cmd_on_2_Click()
If UserForm2.Visible = True Then
    UserForm1.Hide
    Exit Sub
Else:
    UserForm1.Hide
    UserForm2.Show
End If

End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If UserForm2.Visible = True Then
    UserForm1.Hide
    Exit Sub
Else:
    UserForm1.Hide
    UserForm2.Show
End If

End Sub


Private Sub cmd_on_3_Click()
If UserForm3.Visible = True Then
    UserForm2.Hide
    Exit Sub
Else:
    UserForm2.Hide
    UserForm3.Show
End If

End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If UserForm3.Visible = True Then
    UserForm2.Hide
    Exit Sub
Else:
    UserForm2.Hide
    UserForm3.Show
End If

End Sub


Private Sub cmd_on_1_Click()
If UserForm1.Visible = True Then
    UserForm3.Hide
    Exit Sub
Else:
    UserForm3.Hide
    UserForm1.Show
End If

End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If UserForm1.Visible = True Then
    UserForm3.Hide
    Exit Sub
Else:
    UserForm3.Hide
    UserForm1.Show
End If

End Sub


Только не работает все это у меня как надо. после первого раза уходит в "завис", точнее кнопки - работают, а вот "крестики" - ни в какую.

Ответить

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

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



Вопросов: 0
Ответов: 4
 Профиль | | #1 Добавлено: 21.11.08 17:59
На самом деле я не понял Ваших манипуляций с событием QueryClose, но могу посоветовать в модуль формы поставить такой код(естессно Вы должны будете сами подставить нужные Вам действия вместо MsgBox)
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
  1.     If CloseMode = vbFormControlMenu Then
  2.        If MsgBox("Вы действительно хотите закончить работу ?", _
  3.           vbYesNo, "") = vbNo Then Cancel = True
  4.     End If
  5. End Sub

А чтобы просто запретить закрытие формы крестиком

  1. Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
  2.     If CloseMode = vbFormControlMenu Then Cancel = True
  3. End Sub

Ответить

Страница: 1 |

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



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