Дочерняя форма не обновляется, когда я пытаюсь запустить приложение из формы MDI?


В моем приложении есть форма MDI и дочерние формы.
Вот моя ситуация ...

Основная форма: форма MDI
Регистрационная форма: Дочерняя форма MDI
Форма Desig: другая форма, которая откроется, когда мы нажмем одну кнопку в форме регистрации.

теперь, если я попытаюсь обновить элементы поля со списком формы регистрации из формы Desig, это не будет обновляться. т.е. я не вижу свои новинки в этом поле со списком в форме регистрации.

Теперь, когда я пытаюсь запустить приложение прямо из формы регистрации, тот же код работает отлично, но тот же код не запускается, когда я пытаюсь запустить приложение из формы MDI.

вот мои коды.
Форма MDI:

Dim regform As New Register
StatusLabel.Text = "Opening Workman Registration"
regform.MdiParent = Me
regform.Show()
StatusLabel.Text = "Workman Registration"
regform.concombo.Focus()

Форма регистрации:

 Public Sub refreshCombo()
    desigcombo.Items.Clear()
    sitecombo.Items.Clear()

    addDesCombo() ' method which will loads all new data from database 

    desigcombo.Text = designame ' the string variable (designame)


End Sub

Форма дизайна

Register.refreshCombo() ' will run when we will click on one button.

Так есть ли у них что-нибудь, о чем нужно помнить, когда мы используем форму MDI - Child Form?


person Nitz    schedule 01.12.2010    source источник


Ответы (1)


Когда вы обновляете регистр из Desig, он работает, когда вы запускаете приложение из реестра, потому что существует только одна форма регистрации, и VB автоматически считает ее экземпляром формы.

Когда форма регистрации является дочерней формой, вам нужно использовать экземпляр формы, а не имя класса, что-то вроде MainForm.ActiveMdiChild.refreshCombo()

person xpda    schedule 02.12.2010
comment
только одно изменение .... нет метода под названием ActiveMdiChild, но я делаю обновление только из его экземпляра формы .... означает, что функция MainForm.regform.refreshCombo () работает .... спасибо - person Nitz; 02.12.2010