如何设置应用程序以便用户可以同时使用父表单和子表单?

时间:2017-07-12 20:54:56

标签: vb.net forms

我正在开发一个VisualBasic 2010应用程序。在运行期间,我注意到只要主窗体打开任何子对话框,窗体,消息框,提示等,所述主窗体或父窗口就会停止访问/可点击。

在大多数情况下,我可以看到它的价值和逻辑,但是我需要使用几个子表单,同时保持主表单仍然可用。我不想使用MDI,因为从我所看到的,MDI在同一个窗口中形成所有产生的东西,这不是我想做的事情。

有没有人知道是否有办法设置VB.net应用程序,以便应用程序用户可以同时使用父项和所述子表单?

1 个答案:

答案 0 :(得分:3)

假设您正在谈论Winforms(因为您提到了MDI),您有两种方法来显示子表单。一个是 private Expression<Func<TModel, object>> CreateGetterExpression( PropertyInfo propertyInfo ) { var getter = propertyInfo.GetGetMethod(); Expression<Func<TModel, object>> expression = m => getter.Invoke( m, new object[] { } ); return expression; } ,另一个是form.Show()

form.ShowDialog()会使父表单和子表单都处于活动状态,并且用户可以切换回父表单而无需关闭子表单,而form.Show()将使子表单生成表单块访问父表单,直到它关闭(由用户或程序代码本身,无关紧要)。

form.ShowDialog()只是使用MessageBox.Show()显示表单,这就是用户无法访问父表单直到消息框关闭的原因。

创建一个模仿MessageBox类的类非常容易,只使用ShowDialog()而不是Show(),从而使用户能够访问消息表单和它的父表单。