我正在使用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时。它确实构建了,但奇怪的是,它不会触发此事件。当然,这是一个主要的软件,整个项目都有类似的事件。
答案 0 :(得分:0)
我需要禁用“只是我的代码”,然后听听上面评论过的'Hans Passant'并寻找一个采用FileLoadException形式的“First chance Exception”。但真正的问题是,在实际加载表单之前仍然有一些2.0代码在后台运行。我在临时解决了这个问题,把它放在AppConfig中:<startup useLegacyV2RuntimeActivationPolicy="true">
然后我的OnLoad开始射击。