覆盖Onload不触发4.5框架

时间:2015-01-08 16:37:07

标签: c# .net winforms mdiparent

我正在使用MDI控件上的Winforms项目。我只花了一点时间将框架从2.0移到4.5。我知道我会遇到一些问题,但这个问题我没有看到。

我没有得到简单的覆盖' OnLoad'经常使用的事件。然而他们在2.0版本中开火了。我用谷歌搜索了一段时间,看不出任何原因。

以下是一些代码:

public partial class MDIParent1 : Form
{

    public void InitializeComponent()
    {
        System.ComponentModel.ComponentResourceManager(typeof(MDIParent1));
        // 
        // MDIParent1
        // 
        this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
        this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
        this.BackColor = System.Drawing.Color.WhiteSmoke;
        this.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("$this.BackgroundImage")));
        this.ClientSize = new System.Drawing.Size(1133, 223);
        this.Controls.Add(this.IconStrip_1);
        this.Controls.Add(this.pnlThumbnails);
        this.Controls.Add(this.statusStrip);
        this.Cursor = System.Windows.Forms.Cursors.Default;
        this.ForeColor = System.Drawing.SystemColors.WindowText;
        this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
        this.IsMdiContainer = true;
        this.KeyPreview = true;
        this.Location = new System.Drawing.Point(20, 20);
        this.Menu = this.mainMenu1;
        this.Name = "MDIParent1";
        this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
        this.Text = "Youll never know what this actually said";
        this.TransparencyKey = System.Drawing.Color.Yellow;
        this.statusStrip.ResumeLayout(false);
        this.statusStrip.PerformLayout();
        this.pnlThumbnails.ResumeLayout(false);
        this.thumbsTableLayoutPanel.ResumeLayout(false);
        this.tabThumbnails.ResumeLayout(false);
        this.IconStrip_1.ResumeLayout(false);
        this.IconStrip_1.PerformLayout();
        this.ResumeLayout(false);
        this.PerformLayout();
    }

    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);
        ...
        //Not Firing! in 4.5?!
    }   
}

我切断了我认为可以帮助你找出问题的方法。请记住它在2.0中工作,但不是在我将它调到4.5时。它确实构建了,但奇怪的是,它不会触发此事件。当然,这是一个主要的软件,整个项目都有类似的事件。

1 个答案:

答案 0 :(得分:0)

我需要禁用“只是我的代码”,然后听听上面评论过的'Hans Passant'并寻找一个采用FileLoadException形式的“First chance Exception”。但真正的问题是,在实际加载表单之前仍然有一些2.0代码在后台运行。我在临时解决了这个问题,把它放在AppConfig中:<startup useLegacyV2RuntimeActivationPolicy="true">然后我的OnLoad开始射击。