c# 怎么在窗体完全显示出来后执行某个方法?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# 怎么在窗体完全显示出来后执行某个方法?相关的知识,希望对你有一定的参考价值。

怎么在窗体完全显示出来后执行某个方法(不用点击按钮之类的操作,就会执行的)
单步调试发现, 在Form1_load事件中,Form1_actived事件,Form1_shown 事件中 执行都不行,
如果把方法放在这些事件中,会在方法执行完后,窗体才完全显示出来,
难道只能 用定时器,估计窗体完全显示的时间,时间到了开一个线程,在线程中执行该方法?、没有更好的吗?

在 Shown 事件里写,但要注意第一行代码要写:

this.Show();

追问

试过了,还是一样的结果,要等shown事件里的方法执行完,窗体才完整显示出来。

追答

你的方法里是否存在大量阻塞UI线程的代码?如果是的话还需要使用异步委托。

参考技术A 很简单
在子窗体的关闭事件里写上父窗体的visible=true;就可以了,

C# winform 窗体左右一部分显示 一部分隐藏

就跟以前qq的那个什么代理一样,点一下显示出来。再点一下隐藏。新手麻烦稍微详细一点。谢谢

// 采用SplitContainer容器控件,可以实现QQ聊天窗口右侧边栏伸缩展开的效果。

if(splitContainer.Panel1Collapsed)

     splitContainer.Panel1Collapsed=false; // 展开
else

     splitContainer.Panel1Collapsed=true; // 收缩

参考技术A 在From窗体上,放2个panel控件,点击“隐藏”,将一个panel隐藏,将另一个panel显示,显示的那个panel重新设置它的大小追问

谢谢。我找到一个修改它大小的方法能用。 this.Width或者其他什么的来显示。

参考技术B Form1 frm = new Form1(); frm.Hide();窗体就隐藏

以上是关于c# 怎么在窗体完全显示出来后执行某个方法?的主要内容,如果未能解决你的问题,请参考以下文章

C# 先显示窗体,后运行form_load程序

C# Winform 中怎么通过登录权限不同,登录进去后显示不同的界面啊 求大神

在C#中如何重写控件

C# winform 窗体左右一部分显示 一部分隐藏

C#: 要把容器内的某个控件 在运行后随便拖动,该怎么做啊?

js怎么获取表格中指定行某一列的值