2014-09-24 5 views
-1

Я работаю с .Net Windows Forms приложений (vb.net), У меня есть две формы,Vb.NET Windows Forms Фокус событие

  • форма А = Основной формой

  • Форма B = который вызывается нажатием кнопки на формы а

Иссу e is, я хочу обновить определенные элементы управления (список, сетки), когда когда-либо мой Форма А активируется, В Form_A_Load она будет загружать элементы управления, которые необходимо, но когда я открываю форму B и после выхода из формы B , Я хочу перезагрузить элементы управления Form A (List, Grids).

я пытался много событий

Активированный, ММГ, Enter, Уходи, Enabled, видимость изменилась, но не мог зажаты, Если я использую Активированный/деактивирована с некоторым флагом, чтобы проверить, который был вызван, то продолжается цикл продолжения. Пожалуйста, некоторые тела предполагают, обрабатываемый метод

Здесь Изменить код:

Public Class Form1 

Private Sub Form1_Activated(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Activated 
    MessageBox.Show("Activated") 
End Sub 

Private Sub Form1_Deactivate(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Deactivate 
    ' MessageBox.Show("Deactivated") 
End Sub 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    Me.Text = "Activated/Deactivated" 
    MessageBox.Show("This will set focus lost") 
End Sub 

End Class --Ело один раз нажмите на Button1_Click .. "MessageBox.Show (" Activated ")" появляется снова и снова.

+0

Что вы хотите сказать, что хотите «перезагрузить элементы формы A»? Не можете ли вы добавить такой код в FormA_Activate? – Plutonix

+0

I Did, но активирует вызовы снова и снова, даже вы нажимаете кнопку, – DareDevil

+0

Form_activated срабатывает, когда этот пользователь возвращается к этой форме; Я не повторяю то, что вы говорите снова и снова, без кнопки. Вы хотите, чтобы что-то произошло * просто *, когда они закрывают форму B? Для этого используйте общедоступную собственность. – Plutonix

ответ

0

Попробуйте это:

[ОБНОВЛЕНО]

Public Class FormA 

Friend WithEvents objectFormB As FormB 

Private Sub objectFormB_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles objectFormB.FormClosed 
    'do whatever... 
End Sub 
End Class 
+0

где поставить этот код в класс формы B? – DareDevil

+0

Ups, извините, я отредактировал свой ответ: Form1 будет вашей формой A и формой 2 = формой B, поэтому вам нужно объявить объект формы B в своей форме A с помощью «Friend WithEvents» и добавить событие также в вашу форму Объект –

+0

Форма A имеет два UserControls на нем Form User Control_1 Я вызываю форму B, поэтому я не могу понять, – DareDevil

1

В принципе, это было что-то несколько форм открыли, и то, что я сделал, что на FormClosing последней формы, где мой код возвращается в Forma A, я проверил Loop the Opened Forms, и оттуда я выбрал свою форму A и выполнил функцию, которая перезагружает список.

Смежные вопросы