親フォームがMdiForm1という名前で、子フォームであるfrm1を開きます。今のところfrm1の中で別のフォームを開く必要があります - frmXと呼ぶことができます。ここで私の問題が発生しています - 以前はmdichild形式と宣言していましたが、mdichild.showでした。このフォームが開くと(すでに開いているfrm1の約1/3をカバーします)、ユーザーがfrmXの外側をクリックすると、単に消滅します。だから私は.showDialog()にしようとしましたが、トップレベルではないので、それを行うことができません。したがって、mdiChildは私に.showdialog()をさせません。ここに私のコードでは、トップレベルのフォームではありません子フォームと親フォームがVb.netで一致しない
フォームとして表示することはできません....私は(.showDialogでこのエラーを取得)し、ここでそれが言うことだ...
Private Sub cmd1_Click(sender As Object, e As EventArgs) Handles cmd1.Click Dim NewMDIChild As New Frmx() 'Set the Parent Form of the Child window. NewMDIChild.MdiParent = MDI1 'Display the new form NewMDIChild.ShowDialog() NewMDIChild.Top = 310 NewMDIChild.Left = 36 NewMDIChild.Width = 897 End Sub
ですモーダル ダイアログボックス。 showDialogを呼び出す前に、親フォームからフォームを削除してください。
私はこのようなfrmXを宣言しようとした....
dim frmX as New Form
frmX.showDialog
'specifying Top/Left/Width but that doesn't do anything, basically opens an empty form elsewhere on the screen.
編集:それは少し紛らわしいです:/
これは私がやったことである - 同じエラーを取得します。これは、frmXを消さないようにfrm1をクリックしたユーザーがモーダルでOPEN frmXを使用すると考えられるボタンクリック時のfrm1にあります。それは私がFRM1にelsewherクリックすると、しかし--- frmXは、彼らはそれに近いクリックするまで
Dim frmxName As New FrmX()
frmxName.MdiParent = Me.MdiParent
frmxName.ShowDialog()
frmxName.Top = 310
frmxName.Left = 36
frmxName.Width = 897
私の目標は、オープンfrmXを持つことで消え、右の場所にオープン!
私はまた – BobSki
左/トップなどを指定するという点で残りのコードで行うのですか、このbutton_clickは私FRM1である - ので、私はfrmXロードイベントでこのコードが含まれていますか? – BobSki
あなたの例ではクラスに異なる名前を使用しているので、少し混乱します。原則として、MDIの子frmXを持つ場合、新しいフォームfrmYを作成し、そのフォームのMDIの親をfrmXの親に設定することができます。あなたのコメントの質問は、オフトピックと思われる – djv