سلام
اگه منظورتون رو درست متوجه شدم باشم مشکل شما اینه که تمام فرمهای چیلد شما از یه windows state پیروی می کنند. یعنی یه windows state برای تمام فرمها.
شما باید این windows state رو برای هر فرم ایجاد کنید به نحوی که هر کدوم ازفرمها از فیلد خودشون بهره ببرند.
یه تایمر روی هر کدوم از فرماتون ایجاد کنید سپس کد زیر رو در هر کدوم از فرماتون وارد کنید.
امیدوارم مشکلتون حل شه.
PublicClass Form1
Dim ls As Windows.Forms.FormWindowState
Dim isactive AsBoolean = True
PrivateSub Form1_Activated(ByVal sender AsObject, ByVal e As System.EventArgs) HandlesMe.Activated
Me.WindowState = ls
isactive = True
EndSub
PrivateSub Form1_Deactivate(ByVal sender AsObject, ByVal e As System.EventArgs) HandlesMe.Deactivate
isactive = False
EndSub
PrivateSub Form1_Layout(ByVal sender AsObject, ByVal e As System.Windows.Forms.LayoutEventArgs) HandlesMe.Layout
Timer1.Enabled = True
EndSub
PrivateSub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If isactive = TrueThen ls = Me.WindowState
Timer1.Enabled = False
EndSub
EndClass
البته این توضیح رو هم بدم که شما نباید از دستور showdialog برای فرمهاتون استفاده کنید. واسه اونم از کد زیر استفاده کنید.
Dim fo1 AsNew Form1
fo1.MdiParent = Me
fo1.Show()
کد زیر روی توی فرم پدر بنویسید، یعنی جایی که فرم رو اجرا میکنید. مثلا توی روال button1.click