【发布时间】:2017-09-13 17:26:49
【问题描述】:
我有一个使用拆分容器的多标签 Winform。在右侧选项卡中,我使用左侧选项卡显示/隐藏用户控件。一些用户控件需要在其上显示一个新的用户控件。问题是当原始用户控件显示新用户控件时,我希望第一个用户控件等待新用户控件关闭(有些像表单中的 ShowDialog),但是这个屏幕锁定应该只出现在一个选项卡中。
我尝试了 Threads 和许多其他解决方案,但没有一个能如我所愿。
{
var panel = (Panel)this.Parent;
var searchUserControl = new searchUserControl();
searchUserControl.Parent = this;
panel.Controls.Add(searchUserControl);
this.visible = false; // hides the original form
// wait
this.visible = true; // shows the original form again
var result = searchUserControl.CustomProperty;
}
【问题讨论】:
-
你不能禁用第一个用户控件,直到完成第二个?
-
不会等待代码
-
啊,我想我明白你现在的要求了。您希望
ShowDialog与UserControl类似,但仅限于一个标签页,您仍然希望能够在“对话框控件”启动时将标签更改为其他页面。您还想在“对话框控件”打开的位置阻止代码执行,以便它仅在控件关闭时运行下一行,大概返回某种“结果代码”,就像对话框一样。对吗? -
我也许可以使用
async/await来安装类似的东西,但是你们其余的代码必须支持它(一路异步)。 -
@BradleyUffner 就是这样。我来自网络世界,并锁定了这个。我无法使用 ShowDialog 阻止所有主要表单,但我需要打开一个模式“搜索”到特定容器。