上篇介绍的 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。

        <bee:TBMediaPlayer ID="TBMediaPlayer1" runat="server" AutoStart="True" 
            Height="249px" Url="D:\Movie_01.wmv" Width="250px">
        </bee:TBMediaPlayer>

备注:本文同步发布于「第一届iT邦帮忙铁人赛」,如果你觉得这篇文章对您有帮助,记得连上去推鉴此文增加人气 ^^
http://ithelp.ithome.com.tw/question/10012196

[ASP.NET 控件实作 Day12] 继承 TBActiveX 重新改写 TBMediaPlayer 控件相关推荐

  1. [ASP.NET 控件实作 Day14] 继承 CompositeControl 实作 Toolbar 控件

    之前我们简单介绍过继承 CompositeControl  来实作复合控件,在本文我们将以 Toolbar 控件为例,以复合控件的作法(继承 CompositeControl )来实作 Toolbar ...

  2. [ASP.NET 控件实作 Day28] 图形验证码控件

    在网页上常把图形验证码应用在登入或贴文的页面中,因为图形验证码具有机器不易识别的特性,可以防止机器人程序恶意的存取网页.在本文中将实作一个图形验证码的服务器控件,透过简单的属性设定就可以轻易地在网页上 ...

  3. ASP.NET2.0自定义控件组件开发 第六章 深入讲解控件的属性

    深入讲解控件的属性持久化(一) 系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 ASP.NET自定义控件组件开发 第一章 第 ...

  4. [翻译]Scott Mitchell 的ASP.NET 2.0数据教程之十三:在DetailsView控件中使用TemplateField...

    导言 比起BoundField.CheckBoxField.HyperLinkField以及其他的那些数据字段控件(data field controls)来说,TemplateField提供了一种高 ...

  5. ASP.NET AJAX入门系列(5):使用UpdatePanel控件(二)

    UpdatePanel可以用来创建丰富的局部更新Web应用程序,它是ASP.NET 2.0 AJAX Extensions中很重要的一个控件,其强大之处在于不用编写任何客户端脚本,只要在一个页面上添加 ...

  6. [导入]Asp.net 2.0 自定义控件开发[创建自定义浮动菜单FloadMenu控件][示例代码下载]...

    Asp.net 2.0 自定义控件开发[创建自定义浮动菜单FloadMenu控件][示例代码下载] 文章来源:http://blog.csdn.net/chengking/archive/2007/0 ...

  7. asp.net控件页面交互_ASP.NET Web窗体用户控件的基本交互

    asp.net控件页面交互 I saw a recent question regarding .NET - Render User Control Logo on Postback and deci ...

  8. 控件包含代码块(即 % ... %),因此无法修改控件集合。

    第一种: 在使用主题的时候出现 控件包含代码块(即 <% ... %>),因此无法修改控件集合错误,原来错误的原因是: 控件包含代码块(即 <% ... %>),因此无法修改控 ...

  9. 从控件开发的角度看几个editor控件,Freetextbox,radtoolbar,abouteditor,cuteeditor

    今天控件的开发有了很大进展,写些东西.在开发之前,我看了几个控件的源代码,如Freetextbox,radtoolbr,abouteditor以及cuteeditor.今天凭会议总结一下他们的特点,能 ...

最新文章

  1. Android底层开发之旅—蓝牙系统分析
  2. AlphaImageLoader用法
  3. 对信号集操作函数的使用方法和顺序
  4. 神马是线程?PHP对其具体的应用?应用在哪里?
  5. java 夏令时标志_夏令时随绝对日期而变化
  6. 硬币兑换python 每个面值有多个_【算法27】硬币面值组合问题
  7. sql无效字符 执行sql语句报错解决方案
  8. 两个正数相乘为什么结果是负数
  9. [bzoj4025] 二分图
  10. python爬虫学习教程,短短25行代码批量下载豆瓣妹子图片
  11. iMazing 2.11.7 WinMac 中文版 — iOS设备管理工具
  12. 电商网站对服务器配置有什么要求?
  13. Unity webGl 鼠标手指触屏控制相机围绕物体 360度旋转
  14. Android仿芝麻信用分雷达分布图
  15. 计算机网络协议指的是tcp ip协议吗,计算机除了有网络协议也就是TCP/IP协议以外,还有什么协议呢?...
  16. 【量化入门】通过几种常见的量化策略框架,学习量化炒股
  17. kvm直通sata_将双系统塞入A4主机:OSX-KVM 显卡直通教程
  18. 微信小程序项目实例——二维码生成器
  19. 垂直水平居中的几种实现方式
  20. 关键词生成器在线-在线免费关键词生成器

热门文章

  1. C语言实践作业报告,c语言社会实践报告
  2. python手机解释器_python3
  3. 计算机网络的资源共享功能包,计算机网络的资源共享功能包括
  4. suse linux如何重置密码忘记,SUSE Linux忘记root密码的处理办法
  5. rabbitmq java文档_RabbitMQ文档翻译——Hello World!(上)
  6. 2014 网选 5024 Wang Xifeng's Little Plot
  7. oracle 表约束非空,oracle--约束(主键、非空、检查)
  8. php 串口通信例程,HAL库串口通信例程
  9. Linux下的ELF文件、链接、加载与库(含大量图文解析及例程)
  10. Linux free 命令详解