2012-03-29 54 views
3

嗨,我有一個包含一個按鈕的用戶控件。我想在坐的自定義功能,該按鈕的點擊喜歡在用戶控制中刪除方法

Protected Sub btnUploadSpreadSheet_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnUploadSpreadSheet.Click 
    MyMethod() 
End Sub 

    Public Overridable Sub MyMethod() 
    ' this i want to over ride 
    End Sub 

,並在我的網頁,我已經加了我的控制,當我試圖在乘坐

Protected Overrides Sub MyMethod() 

End Sub 

它沒有找到該子在基類中。

回答

2

這是因爲該頁面不是您的UserControl(您的頁面不從它繼承)的孩子,無論如何這是錯誤的方法。查找「繼承在Visual Basic」:http://msdn.microsoft.com/en-us/library/5x4yd9d5%28v=vs.90%29.aspx

你顯然需要的是在你的頁面來處理自定義用戶控件的事件:

你的用戶控件:

Class ExcelSheetUploader 
    Inherits UserControl 
    Public Event Uploaded(ctrl As ExcelSheetUploader) 

    Protected Sub btnUploadSpreadSheet_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnUploadSpreadSheet.Click 
     RaiseEvent Uploaded(Me) 
    End Sub 
End Class 

現在你可以在處理它的頁:

Protected Sub ExcelSheetUploader_Uploaded(ctrl As ExcelSheetUploader) Handles ExcelSheetUploader1.Uploaded 
    ' Do something .... ' 
End Sub 

MSDN: RaiseEvent

+0

thankyou它的工作,但我的觀點是我想傳遞一個數據集,並進入這個方法 受保護的子ExcelSheetUploader_Uploaded(Ctrl作爲ExcelSheetUploader)處理ExcelSheetUploader1.Uploaded '做點什麼.... ' End Sub – 2012-03-29 07:59:07

+1

然後將公共屬性添加到DataSet類型的UserControl。然後你可以獲得/設置這個屬性。但請記住,它不會在回傳中生存。 – 2012-03-29 08:06:26

+0

這是一個愚蠢的問題:)我真的很感謝你:) – 2012-03-29 08:07:39

1

你不能這樣做,因爲你的頁面沒有擴展用戶控件。只有在這種情況下,您的實施纔是合適的

+0

那麼我該如何實現在騎按鈕點擊事件?或以任何其他方式來實現功能? – 2012-03-29 07:47:04

+1

你可以實現你自己的事件,例如 – ionden 2012-03-29 07:48:10

0

如果某些類別爲 (例如,頁面)不會繼承您自定義的類(Control)。如果你想 做一些頁面上的某些事件的功能或點擊按鈕然後 創建UserControl上的公共方法,引發一些事件或 執行一些代碼。

注意 - 必須遵循頁面生命週期。

查看這個可能有助於理解的小代碼片段。

Private Class MyControl 
    Inherits NavronChartControl.UserControls.MyControlBase 

    Protected Overrides Sub OnChartTypeChanged(chartType As UserControls.ChartType) 
     MyBase.OnChartTypeChanged(chartType) 
    End Sub 

///Call this OnChartTypeChanged(...) using some method 
/// Or Create your public methods for your functionality 


End Class 

///方法在家長控制

'OnChartTypeChanged is method that raise the event with argument 

Protected Overridable Sub OnChartTypeChanged(chartType As ChartType) 
    'ChartTypeChang is an Event 
    RaiseEvent ChartTypeChanged(chartType) 
End Sub 

檢查Programming ASP.NET- Custom and User Controls的在VB.NET部分處理事件。

MSDN - Raising an Event - 您可以創建自己的自定義事件參數,它保存一些您想要通過事件的數據。例如e.X