c# - 如何获取表单打开事件(WinForm)?
问题描述
我有这样的表格
public ManagerMainForm()
{
InitializeComponent();
...
}
因此,如果我MainForm
打开应用程序并且一切正常,但我需要添加一个新表单作为弹出窗口。
public ManagerMainForm()
{
InitializeComponent();
....
var dialog = new ValidationConfigDialog();
dialog.ShowDialog();
...
}
现在这个ValidationConfigDialog
(表格)打开得更快ManagerMainForm
,因为ShowDialog
它停止打开ManagerMainForm
,直到我关闭它。
那么,我需要什么?我希望有一个OnFormLoaded
事件(可能是一种回调)来通知我ManagerMainForm
已经完全加载并可见,我可以运行另一个相应的进程。
所以,问题是 - 如何获得这样的事件或如何实现这样的逻辑,允许在表单加载后启动进程?
解决方案
有一个很好的MSDN 页面,它告诉您打开表单时引发的事件的顺序。顺序是:
HandleCreated
BindingContextChanged
Load
VisibleChanged
Activated
Shown
由于您的问题是第二种形式显示得太早,我建议您选择最新的事件来执行显示第二种形式的代码。如果由于某种原因这不起作用,请尝试第二个最新的,依此类推。
例子:
Shown += (sender, args) => {
var dialog = new ValidationConfigDialog();
dialog.ShowDialog();
};
推荐阅读
- php - PHP filesize() 显示旧文件大小和 Windows 共享(网络)文件夹中的文件
- python - 查找和替换 !.png 前后有括号
- python - 更新后损坏的python虚拟环境
- c - 如何在 C 中的头文件之间声明和定义共享变量?
- python-3.x - 如何在 Python 中将逗号转换为点
- javascript - 为什么剑道 UI 上传模板中有两个类似的操作按钮?
- flutter - 在父级而不是子级上调用 IgonrePointer
- mercurial - Mercurial 预提交操作
- data-structures - 如何使用哈希表解决问题?
- arrays - 带有动态数据的 highchart 饼图