我有一个名为MDIParent的MainForm表单。它有一个名为SelectDB的子表单。在SelectDB表单中,我有一个按钮,单击该按钮将打开FileDialog以浏览和选择.MDB文件。文件的路径显示在TextBox中。获得.MDB文件后,子窗体关闭,MainForm可见。在MainForm上,我有一个标签,它应该显示我在文本框中得到的路径。而且,当孩子的表格打开的时候。菜单条也应该禁用,或者您可以说MDI表单中的所有控件都应该禁用。

我的MainForm.vb (MDIParent)代码如下:
进口System.Windows.Forms
Public Class MainForm
Private Sub MainForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
sDB.MdiParent = Me
sDB.Show()
End Sub
Public Sub Formload()
msMenu.Enabled = True
lblPath.Text = OG.GetValue("DBPath")
Me.Refresh()
End Sub
End Class我的SelectDB.vb (子表单)代码如下:
Public Class SelectDB
Private Sub btnBrowse_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnBrowse.Click
Dim dlg As New OpenFileDialog
dlg.DefaultExt = ".txt"
dlg.Filter = "MDB Files (*.mdb)|*.mdb"
Dim result As Nullable(Of Boolean) = dlg.ShowDialog()
If result = True Then
Dim filename As String = dlg.FileName
txtPath.Text = filename
End If
OG.SetValue("DBPath", txtPath.Text)
main.Formload()
Me.Hide()
End Sub
Private Sub btnExit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnExit.Click
Application.Exit()
End Sub
Private Sub SelectDB_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Application.Exit()
End Sub
End Class请帮我处理这个。
发布于 2013-08-13 07:52:07
将me.dispose()替换为me.hide()。这将帮助您完成预定的工作。
发布于 2013-08-13 10:03:17
您正在尝试实现的目标有几个选项( Hans已经提到)是最简单的选择:使用ShowDialog()而不是显示。
第二个选项:首先,您可以在主表单中创建一个公共方法,并在打开和关闭时从客户端调用该方法。比如:
主要形式
public void ChildControls(bool IsEnabled)
{
msMenu.Enabled = IsEnabled;
}孩子
private void child_Activated(object sender, EventArgs e)
{
if (this.MdiParent != null)
((mainForm)this.MdiParent).ChildControls(false);
}
private void child_FormClosing(object sender, FormClosingEventArgs e)
{
if (this.MdiParent != null)
((mainForm)this.MdiParent).ChildControls(true);
}第三选择
使用mainform‘MdiChildActivate事件。当ActiveMdiChild == null再次启用控件时。但是,当您使用MdiChildActivate并且有更多(且不同的) Mdi (子)表单时,您应该在激活控件之前执行类型检查。
https://stackoverflow.com/questions/18202993
复制相似问题