覆盖 Onload 不触发 4.5 框架
override Onload not firing 4.5 framework
我正在使用 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 时却无效。它确实建立了,但奇怪的是,并没有触发这个事件。当然这是一款大软件,类似的事件在项目中随处可见。
我需要禁用 'Just my code',然后听取上面评论的 'Hans Passant' 并寻找 'First chance Exception',它采用 FileLoadException 的形式。但真正的问题是,在实际加载表单之前,后台仍然有一些 2.0 代码的引用 运行。我临时解决了这个问题,方法是将其放入 AppConfig:<startup useLegacyV2RuntimeActivationPolicy="true">
然后我的 OnLoad 开始启动。
我正在使用 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 时却无效。它确实建立了,但奇怪的是,并没有触发这个事件。当然这是一款大软件,类似的事件在项目中随处可见。
我需要禁用 'Just my code',然后听取上面评论的 'Hans Passant' 并寻找 'First chance Exception',它采用 FileLoadException 的形式。但真正的问题是,在实际加载表单之前,后台仍然有一些 2.0 代码的引用 运行。我临时解决了这个问题,方法是将其放入 AppConfig:<startup useLegacyV2RuntimeActivationPolicy="true">
然后我的 OnLoad 开始启动。