2010-10-08 1 views
0

У меня есть окно с сеткой, которое делает выбор из MySQL и использует функцию .Show(), установленную в ShowDialog().
Я могу открыть то же окно во второй раз, чтобы иметь два экземпляра одного окна.Как открыть frmWindow второй раз, не обновив сетку в первом?

Теперь, когда я открываю второй экземпляр, сетка заполняется новым выбором также в первом окне. Как я могу открыть окно во второй раз, не обновив его снова в первом?

+0

Возможно, в вашем коде есть ошибка. можете ли вы предоставить образец кода, который воссоздает эффект? – Hath

+0

Трудно сказать без кода. Но: вы уверены, что не привязываете обе сетки к одному и тому же источнику данных? Если источник данных инкапсулирует фильтрацию, было бы логично обновлять обе сетки и показывать одни и те же данные. –

+0

Вы переопределяете Form.Grid непосредственно из источника с формой? – kyndigs

ответ

1

Если вы создаете новый экземпляр той же формы, на основе переменной «Myform» из разных мест, вы в действительности собирается «освежить» обе формы.

Один из способов обойти это - создать второй экземпляр переменной вашего frmMain в отдельной функции. (То есть ... не хорошо VB вообще, так что простите мои навыки программирования VB.)

В одной функции:

Dim myForm AS New formMain() 
myForm.Show(); 

Во второй функции

Dim frmTwo AS New frmMain() 
frmTwo.Show(); 

Тогда вы просто сделать ваши звонки в frmTwo, который открывается второй формой.

Надеюсь, это поможет.

0

Form.Show - простая функция, которая просто сообщает форме для отображения, она может использовать один и тот же экземпляр, следовательно, обновляет оба.

Попробуйте вместо этого:

Dim myForm As New frmMain() // Change frmMain to your forms name 
    myForm.Show()