Формы просто классы. Когда вы говорите Form2 myForm = new Form2();
, вы просто создаете новый экземпляр класса. Вы общаетесь с объектом (экземпляром класса), вызывая его методы, устанавливая его свойства или вызывая его события. Никакой магии здесь.
В частности, когда вы говорите myForm.Show()
, , вы уже сообщили другой форме. Вы просто не поняли это. Так уж получилось, что в вашем классе Form2 был метод Show, так что он работал. Но вы можете создавать свои собственные методы и вызывать их таким же образом.