E.F. Nijboer
Код, который вы пробовали, никогда не будет работать. Вы создаете new object
от frmCustomer
и закройте его, прежде чем открыть. Вы должны понимать это, когда будете подавать заявление new
вы создаете полностью new object
. Этот object
это одно и то же class
из ранее созданного object
но данные не совпадают. Поэтому вы не можете контролировать другого object
с той же class
просто используя другой пример этого object
.
Чтобы закрыть эту тему Form
вам понадобится фактическая ссылка на это Form
Так что вам нужно будет дать это своему frmInventory
(вы можете, например, добавить свойство, в котором вы можете установить эту ссылку) и использовать его для закрытия другого Form
.
Другой способ-искать это Form
во всех открытых Form
с вашего Application
подобный этому:
for (int index = Application.OpenForms.Count-1; index>= 0; index--)
{
if (Application.OpenForms[1].Name == "Customer")
{
Application.OpenForms[1].Close;
}
}
Имейте в виду, что использование
foreach
как это может привести к
Exception
:
foreach (Form form in Application.OpenForms)
{
// ...
}
Это происходит потому, что вы изменили список в цикле, который может дать вам недопустимое исключение операции.
Удачи вам!
E.F. Nijboer
Да, ваше исправление совершенно верно. За исключением того, что я не вижу изменений в ответе, но я обновлю его, чтобы он был правильным.