10

这是一个 Visual Studio 问题。我觉得所有有用的 Intellisense 都应该有一些帮助,但我似乎找不到它。

我在 VS2008 的 ASP.NET C# 中创建了一个带有代码隐藏的页面,它当然会自动生成一个 PageLoad 事件方法。那么,如果我想为 PageLoad 之外的更多事件添加方法怎么办?我认为 Foo.aspx 页面上会有一些可能的方法事件处理程序列表要添加。难道没有更多可能像PageInit,PageDispose,(或等效)等......?我在哪里可以找到这些?

编辑 - 我当然可以在 api 中查找方法名称。我正在寻找一个方便的快捷方式来在 Visual Studio 中添加这些。如果它产生一个,它不能产生其他吗?

4

6 回答 6

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

我很确定还有另一种方法(从设计器视图开始),但我无法重现它。

我通常不使用页面事件处理程序,而是覆盖相应的方法(例如OnLoad,代替Page_Load)。要实现这些覆盖之一,您可以简单地在代码隐藏中键入“覆盖”并按下space以获取您可以覆盖的方法列表。

于 2009-06-25T21:30:46.070 回答
4

安装了无价的ReSharper(可能没有)我可以输入:

override

当我点击空间时,IntelliSence 会弹出一个列表,其中列出了我可以覆盖的所有事件,例如 OnInit、OnPreRender 等。

于 2009-06-25T22:13:54.563 回答
3

作为查看可用内容的快捷方式,您可以随时键入“页面”。然后看一下智能感知中的列表。然后你可以选择一个,点击 +=Tab Tab让它为你生成存根。创建存根后,您必须在创建它的任何位置删除 "Page.event+=" 行。一种作弊的解决方法,但是一旦掌握了它,就可以很快地工作。

于 2009-06-25T21:33:06.017 回答
0

如果不想使用 M4N 描述的方式,而是通过代码:

在PageName.aspx.cs中;

private void InitializeComponent()
{

    // this.LifeCycle += .. // Use intellisense to see alternatives easily
    this.PreRender += new System.EventHandler(this.EventFunctionName);

}

然后在同一个文件中添加:

private void EventFunctionName(object sender, EventArgs e)
{
    // Code..
}

更新(来自 Sahuagin 的评论):这不会生成具有适当名称的事件处理程序。事件处理程序必须命名,例如 Page_Load。这将在您的课程之后而不是在 Page 之后命名它,因此它实际上不会连接到您的页面

于 2013-02-24T20:56:37.597 回答
0

在源代码窗口中,从对象列表组合框中,选择所需的控件(页面)。然后从前一个对象列表组合框右侧的事件列表组合框中选择所需的事件。Visual Studio 将为您创建事件处理程序。

于 2010-08-08T17:41:16.763 回答
-1

TreeScheme.Nodes[0].ChildNodes[0].Checked=true;

treeviewid.node[0].childnodes[0].checked=true;

这将在页面的页面加载事件中将子节点设置为 true

快乐编码

于 2013-08-03T08:00:26.233 回答