9

這是一個Visual Studio問題。我覺得所有有用的Intellisense應該有一些協助,但我似乎無法找到它。如何在Visual Studio 2008中爲ASP.NET添加頁面事件

我在VS2008的ASP.NET C#中創建了一個包含代碼隱藏的頁面,當然它會自動生成一個PageLoad事件方法。那麼,如果我想爲PageLoad之外的更多事件添加方法呢?我認爲在可能的方法事件處理程序的Foo.aspx頁面上會添加一些列表。沒有更多可能像PageInit,PageDispose,(或equiv)等...?我在哪裏可以找到這些?

編輯 - 我當然可以在api中查找方法名稱。我正在尋找一個方便的快捷方式在Visual Studio中添加這些快捷方式。如果它產生一個,它不能讓別人?

回答

26
  • 在解決方案資源管理器中,右鍵單擊頁面,然後從上下文菜單中選擇「查看組件設計器」
  • 打開屬性面板/窗口(按F4
  • 現在單擊黃色箭頭/閃光圖標,你會看到所有頁面的事件列表
  • 雙擊您要添加一個處理事件

我敢肯定有另一種W¯¯唉(從設計師的角度出發),但我無法複製它。

我通常不使用頁面事件處理程序,而是覆蓋相應的方法(例如OnLoad而不是Page_Load)。要實現其中一種覆蓋,只需在代碼隱藏中鍵入「覆蓋」,然後按空間即可獲取可覆蓋的方法列表。

+0

工程在VS2017中

快樂的頁面加載事件檢查真子節點! – 2017-07-05 15:50:55

3

作爲查看可用內容的快捷方式,只需鍵入「Page」即可。然後在intellisense中查看列表。你可以選擇一個,點擊+ = 標籤標籤讓它爲你生成存根。一旦創建了存根,就必須在創建它的地方刪除「Page.event + =」行。一種有效的解決方法,但一旦你掌握了它就可以很快地工作。

+0

Hokey但不是pokey - 快速且易於記憶的作品。謝謝! – McArthey 2012-10-03 14:05:31

+0

這很好。由於該事件是從名爲`Page`的引用處理的,所以生成的事件處理程序偶然得到了正確的命名,即:`Load'事件的`Page_Load`。唯一棘手的部分是,這必須從「方法範圍」完成,因爲您無法在類範圍內訪問「Page」屬性。 – 2015-02-19 16:56:22

3

在安裝了寶貴ReSharper(沒有可能的工作),我可以只輸入:

override 

,當我打的空間IntelliSence的所有事件的列表,我可以重寫如OnInit的,的OnPreRender彈出等等。

+1

在VS2010中,我沒有安裝ReSharper,無論如何它似乎都這樣做。我認爲這是迄今爲止所有提到的最簡單的方法。 – 2013-08-16 21:21:45

+0

這可行,但處理事件和重寫On_方法之間存在細微的差異。 – 2015-02-19 16:47:56

0

在源代碼窗口中,從對象列表組合框中選擇所需的控件(頁面)。然後從前一個對象列表組合框右側的事件列表組合框中選擇所需的事件。 Visual Studio將爲您創建事件處理程序。

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.. 
} 

UPDATE(從評論由Sahuagin): 這不會產生帶有相應名稱的事件處理程序。事件處理程序必須命名爲,例如Page_Load。這將命名它在你的課後,而不是頁後,所以它不會真的被掛鉤到你的頁面

-1

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

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

這將設置編碼

相關問題