visual studio 2010 - preInit方法

时间:2011-07-04 17:59:13

标签: asp.net visual-studio-2010 c#-4.0

我正在使用VS2010,我正在阅读我的书中的一些例子,我正在尝试找到preInit方法。我似乎在VS2008中为VB.Net回忆起所有Page LifeCycle方法都在右上角下拉为“Page”元素(左上角)。

就像我说我正在使用VS2010和C#。在我的左上角下拉,我看到的是_Default。我看到的唯一PLC事件是Page_Load。我是否必须手动输入preInit方法,或者有没有办法让它自动填充,就像我在VB中使用2008看到的那样?

enter image description here

我跟着基里尔的回答,它完成了他所说的一切。但是,这就是它产生的(Default.aspx是我正在使用的页面的名称):

private void _Default_PreInit(object sender, EventArgs e)
{
 ...
}

当我在那里放置一个断点时,它从未进入该代码块并且代码从未运行过......

但是,当我使用以下方法手动将其写出来时:

protected void Page_PreInit(object sender,EventsArgs)
{
...
}

断点和该块中的代码有效!

有什么想法吗?

2 个答案:

答案 0 :(得分:5)

Here就是答案。 如果简短:

  
      
  • 在解决方案资源管理器中,右键单击该页面并选择“查看”   组件设计师“从上下文   菜单
  •   
  • 打开属性面板/窗口(按F4)
  •   
  • 现在点击黄色箭头/闪光灯图标,您将看到所有的列表   页面活动
  •   
  • 双击要为其添加处理程序的事件
  •   

<强>更新

是的,你是对的,它没有按预期工作。很抱歉发布答案时没有真正检查它是否有效。我不知道如何解决它,但我至少找到了解释。

除了您提到的方法之外,它还添加了类似

的内容
private void InitializeComponent()
        {
            this.PreInit += new System.EventHandler(this._Default_PreInit);
        }

它来自旧的设计/编译模型。 MS在ASP.NET 2.0中更改默认设计/编译模型后,默认情况下 AutoEventWireup设置为true,它自动指示编译器 使用命名从文件后面/旁边的代码附加事件处理程序 约定(对于页面事件),例如

protected void Page_Load(...)
{
}

自动附加在幕后:

this.Load += new EventHandler(this.Page_Load)

显然,Visual Studio 2010的相应行为并未根据这些更改进行更改,并且它仍然按照旧的命名约定创建事件处理程序并添加委托附加方法,而不再需要这样做。

答案 1 :(得分:0)

然后我发现我回答了我的问题。我正在学习MCTS 70-515考试和第3章(第111页)的“了解ASP.Net生命周期和处理事件”课程,我阅读了以下段落:

添加C#事件处理程序

“C#的代码编辑器也有一个事件处理程序下拉列表。但是,它只包含对您已经为处理程序提供的事件的访问权限.C#环境提供了一个连接控制事件的工具,但是它没有为Page事件提供这样的工具。对于这些工具,你必须手动编写事件处理程序。

但是,在VB.Net网站方面,你可以得到我最初描述的2个下拉列表。