C#中的Form.Load事件可能不会像VC中窗口的WM_CREATE消息一样如期出现

在C#中创建了一个窗口(Form1 frm1=new Form1()),但是没有显示Show()或ShowDialog(),这是我们可以调用这个窗口中的有关函数OpenSceneFile(String sFilePath),但是这个窗口是不可见的,窗口的Load的事件也没有被触发,此时如果我们在Load事件中对某些变量进行初始化(m_fileProcesor=new SceneFileProcessor()),而OpenSceneFile函数要运行的前提是m_fileProcessor被初始化了,那么这时候OpenSceneFile()函数肯定会出错。

我们在VC中new一个窗口,之后如果不调用Create函数,那么WM_CREATE也不会被触发,但是我们在VC中的习惯一般是new之后,直接Create(),如果我们不希望窗口显示,只要传递一些参数即可:窗口可以被创建,但是不显示处来。

C#中如果new之后不调用Show,那么Load事件就不会被触发,那么OnFormLoad中的一些初始化代码就不能被执行。我们确实有一些情况,希望窗口被创建,Load事件被执行,但是窗口本身又不可见,在C#中不知是否有解决办法。

 

在对Form本身无法控制的情况下,即在窗口没有被Show的情况下,我们就行使用它,这时候,不用把一些必须的代码初始化放到OnFormLoad()事件处理函数中,单独写一个初始化函数,在必要的时候进行调用即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值