天天看點

[ASP.NET 控件實作 Day12] 繼承 TBActiveX 重新改寫 TBMediaPlayer 控件

上篇介紹的 TBActiveX 控件,它可以支援網頁 Media Player 的設定,這跟前面提及的 TBMediaPlayer 功能相同。TBActiveX 具有網頁設定 ActiveX 通用屬性,是以 TBMediaPlayer 基本上是可以由 TBActiveX 繼承下來,再加入 Media Player 特有的屬性即可。本文将原來的 TBMediaPlayer 控件,繼承的父類别由 WebControl 改為 TBActiveX 類别,重新改寫 TBMediaPlayer 控件。

程式代碼下載下傳:ASP.NET Server Control - Day12.rar

一、改寫 TBMediaPlayer 控件

TBMediaPlayer 控件原本是繼承 WebControl,現改繼承對象為 TBActiveX,來重新改寫 TBMediaPlayer 控件。

step1. TBMediaPlayer 繼承至 TBActiveX

新增 TBMediaPlayer 控件,繼承至 TBActiveX,并在建構函式設定 Media Player ActiveX 的 ClassId。

Public Class TBMediaPlayer      
Inherits TBActiveX      
''' <summary>      
''' 建構函式。      
''' </summary>      
Sub New()      
MyBase.ClassId = "6BF52A52-394A-11D3-B153-00C04F79FAA6"      
End Sub      
End Class      

step2. 加入相關屬性

跟原來的 TBMediaPlayer 控件一樣,加入 Url、AutoStart、UIMode 三個屬性,可視情形加入需要設定的屬性。

step3. 加入 Media Player 參數

覆寫 CreateChildControls 方法,動态依屬性設定在 Params 集合屬性加入參數。雖然 TBMediaPlayer 控制項目前隻有 Url、AutoStart、UIMode 三個屬性,但是父類别 TBActiveX 具有 Params 集合屬性,是以開發人員可以視需求加入其它未定義的參數。

''' <summary>      
''' 加入 MediaPlayer 參數。      
''' </summary>      
''' <param name="Name">參數名稱。</param>      
''' <param name="Value">參數值。</param>      
Private Sub AddParam(ByVal Name As String, ByVal Value As String)      
Dim oParam As TBActiveXParam      
oParam = New TBActiveXParam(Name, Value)      
Me.Params.Add(oParam)      
End Sub      
''' <summary>      
''' 覆寫 CreateChildControls 方法。      
''' </summary>      
Protected Overrides Sub CreateChildControls()      
'加入 Url 參數      
If Me.Url <> String.Empty Then      
AddParam("URL", Me.ResolveClientUrl(Me.Url))      
End If      
'加入 autoStart 參數      
If Me.AutoStart Then      
AddParam("autoStart", "true")      
End If      
'加入 uiMode 參數      
If Me.UIMode <> EUIMode.NotSet Then      
AddParam("uiMode", Me.UIMode.ToString)      
End If      
MyBase.CreateChildControls()      
End Sub      

二、執行程式

在頁面拖曳 TBMediaPlayer 控件,設定  Url、AutoStart、UIMode 屬性,若有需要加入其它參數,可自行設定 Params 集合屬性。執行程式就可以在頁面上看到呈現出來的 Media Player。

Height="249px" Url="D:\Movie_01.wmv" Width="250px">      
</bee:TBMediaPlayer>      

備注:本文同步釋出于「第一屆iT邦幫忙鐵人賽」,如果你覺得這篇文章對您有幫助,記得連上去推鑒此文增加人氣 ^^

http://ithelp.ithome.com.tw/question/10012196