原文出处:http://www.cnblogs.com/Hedonister/archive/
Posted on 2005-12-28 21:35 冰戈 阅读(615) 评论(3) 编辑 收藏 收藏至365Key 所属分类: DotNet2.0
今天把前不久刚开始的一个练习项目转化到vs2005下继续开发,还是比较烦的,出现了下面三个问题:
1、原来的事件处理函数为private,转化后将出现找不到该事件处理的情况;
解决办法:将private改为public,并在控件属性设置相应事件的方法;
2、Web 窗体设计器生成的代码转化后将继续保留,会引发重复处理的情况,删除即可
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/**//// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.ibOK.Click += new System.Web.UI.ImageClickEventHandler(this.ibOK_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/**//// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.ibOK.Click += new System.Web.UI.ImageClickEventHandler(this.ibOK_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
3、Global.asax文件的处理形式不一样,转化后将出现错误,在vs2003中Global.asax具有代码后置文件,而vs2005则直接出现如下代码,所以需要删除转化过来的文件重新加入,并把相应的代码copy过来 :
<%@ Application Language="C#" %>
<script runat="server">
void Application_Start(object sender, EventArgs e)
{
}
void Application_End(object sender, EventArgs e)
{
// 在应用程序关闭时运行的代码
}
void Application_Error(object sender, EventArgs e)
{
// 在出现未处理的错误时运行的代码
}
void Session_Start(object sender, EventArgs e)
{
// 在新会话启动时运行的代码
}
void Session_End(object sender, EventArgs e)
{
// 在会话结束时运行的代码。
// 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
// InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer
// 或 SQLServer,则不会引发该事件。
}
</script>