по фрагментам:
1 - тут вы создаете форму в
локальной переменной
form
и отображаете как диалог.
модально кстати, а не
модельно.. если слово смущает, просто нагуглите
модальное окно ))
2 и 3 - финт с
var frm = this.Owner;
избавляет от незнания переменной, указывающей на экземпляр класса. но именно тут и возникает ваша проблема
решения:
- попробуйте рассматривать переменные главного окна, как глобальные, по отношению ко всем порождаемым окнам/диалогам. тогда можно применить другой финт - описать в классе главного окна (здесь видимо
frmLScheta
) поля форм нужных типов (допустим
frmSprStreet SprStreet
). и пользоваться ими вместо локальных переменных. получится что то вроде
var frm = (this.Owner as frmLScheta).SprStreet;
но такой прием требует обязательной проверки на SprStreet на null
- более классический прием состоит в создании своего конструктора для дочерних форм (да вообще чего угодно), куда можно передавать и нормально типизированное значение главной формы, и сколь угодное количество смежных форм. естественно в классе должны быть предусмотрены соответствующие типизированные поля, куда конструктор и сохраняет эти значения (указатели по существу). проверка на null так же обязательна. ее можно выполнять в конструкторе, но надежнее в каждом методе, где такой указатель используется.
ps
1 - слышали понятие best practices?.. так во у вас bad practices.. попробуйте открыть 2 экземпляра frmSprStreet и работать параллельно. ну и быстро все поймете
2
Ничего не понял
выходит лукавите. поняли, но не очень удачно. при этом удаляете свой камент. да еще и
медальку вешаете себе - тройное лукавство. фу