.初探控制項屬性(Property)的建立

1.當我們建立一個控制項(或類別),可以建立控制項的屬性(property),屬性多半是一個值,或是指到另外一個物件,或是一個集合。

請注意,在該屬性宣告的時候,加上了【Default】關鍵字,所以該屬性為【預設屬性】,使用的時候比較特別,可以有底下這兩種用法,兩種使用方法的意義都一樣:

Row.Item(0)=“測試”

Row(0)=“測試”

也就是說,預設屬性可以不用多打【item】這幾個字。但是由於語言的限制,所以預設屬性一定要是陣列類型。

2.屬性可以是ReadOnly或是WriteOnly,如果您設計成ReadOnly,則屬性程式碼中不可有【Set】段落,同樣的,如果您設計成WriteOnly,則屬性中不可以具有【Get】段落。

3.保留屬性的值

一是用私有變量,二是用ViewState。

五.建立控制項的方法(Method)

可以將其視為一個Sub或是Function。

.建立控制項的事件(Event

事件,是控制項中一個非常重要的機制,簡單的說,【事件】的意思,就是當控制項發生了什麽事情的時候,會呼叫到的函式,而我們提供一個介面,讓開發人員可以在這個介面裡面撰寫一些程式,達到某個效果。

1. 建立一個事件

<DefaultProperty("Text"), DefaultEvent("OnClick"), ToolboxData("<{0}:WebCustomControl1 runat=server></{0}:WebCustomControl1>")> Public Class WebCustomControl1

Inherits System.Web.UI.WebControls.WebControl

'建立一個事件

Public Event OnClick()

…………

End Class

但是這個事件永遠不會發生,因為,我們從來沒有觸發這個事件。

2. 觸發事件

<DefaultProperty("Text"), DefaultEvent("OnClick"), ToolboxData("<{0}:WebCustomControl1 runat=server></{0}:WebCustomControl1>")> Public Class WebCustomControl1

Inherits System.Web.UI.WebControls.WebControl

'建立一個事件

Public Event OnClick()

Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)

'如果隱藏欄位裡面的值,是控制項的 ClientID 則觸發 OnClick事件

If Me.Page.Request.Form("For_WebCustomControl1") = Me.ClientID Then

RaiseEvent OnClick()

End If

MyBase.OnLoad(e)

End Sub

Imports System.ComponentModel

Imports System.Web.UI

<DefaultProperty("Text"), DefaultEvent("OnClick"), ToolboxData("<{0}:WebCustomControl1 runat=server></{0}:WebCustomControl1>")> Public Class WebCustomControl1

Inherits System.Web.UI.WebControls.WebControl

'建立一個事件

Public Event OnClick()

'底下的Render會產生一段按鈕的HTML 例如:<Button> 標題文字 </Button>

Protected Overrides Sub Render(ByVal output As System.Web.UI.HtmlTextWriter)

'註冊一個隱藏欄位

Me.Page.RegisterHiddenField("For_WebCustomControl1", "")

'Render控制項HTML碼

Dim JavaScript As String

'建立 Postback 用的 JavaScript

JavaScript = "Form1.For_WebCustomControl1.value='" & Me.ClientID & "';Form1.submit();"

output.AddAttribute("onclick", JavaScript)

output.AddAttribute("id", Me.ClientID)

output.AddAttribute("name", Me.ClientID)

output.RenderBeginTag("button")

output.Write(Me.Text)

output.RenderEndTag()

End Sub

Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)

'如果隱藏欄位裡面的值,是控制項的 ClientID 則觸發 OnClick事件

If Me.Page.Request.Form("For_WebCustomControl1") = Me.ClientID Then

RaiseEvent OnClick()

End If

MyBase.OnLoad(e)

End Sub

'建立一個 Text 屬性,Render程式碼會用這個屬性作為按鈕的標題文字

Dim _text As String

<Bindable(True), Category("Appearance"), DefaultValue(""), Description("Text屬性的功能是...")> Property [Text]() As String

Get

Return _text

End Get

Set(ByVal Value As String)

_text = Value

End Set

End Property

End Class

DefaultEvent("OnClick")——默認事件。當控制項Double-Click是,Vs.net會自動建立這個事件的程式碼骨架。

转载于:https://www.cnblogs.com/htht66/archive/2008/11/15/1334171.html

控制項學習四(屬性與事件)相关推荐

  1. 控制項學習三(從繼承開始)

    三.從繼承開始 1.繼承控制項 所有的控制項設計,都是從繼承一個物件而來. 當我們建立一個新的控制項專案,系統會自動生成一些程式碼,例如, Inherits System.Web.UI.WebCont ...

  2. [課程筆記] 機器學習2021(李弘毅) L32.概述增強式學習(四)

    Reward Shaping Sparse Reward 许多场景中,大多数情况下并没有奖励,像是: 围棋: 平常落子没有奖励,只有棋局结束时才有奖励(输/赢) 机器人栓螺丝: 大多数动作都没有奖励, ...

  3. 從turtle海龜動畫 學習 Python - 高中彈性課程系列 9 Python 物件導向介紹

    "Talk is cheap. Show me the code." ― Linus Torvalds 老子第41章 上德若谷 大白若辱 大方無隅 大器晚成 大音希聲 大象無形 道 ...

  4. 從turtle海龜動畫學習Python-高中彈性課程1

    Goal: 藉由有趣的「海龜動畫繪圖」學會基礎的 Python 程式設計 本篇介紹本彈性課程之開設由來, 以及一些供後續查閱之Python 之細節, 方便後面再回頭交叉索引之內容, 文獻等 " ...

  5. python操作txt找到最便宜的素菜_Python線性模型學習筆記

    歡迎關注Python愛好者社區,我們是專註於商業智能BI,大數據,數據分析領域的垂直社區,學習,問答.求職一站式搞定! 天善學院618活動正在進行中!天善學院618大禮包,大數據.數據分析與數據挖掘. ...

  6. 用免費的電腦資源協助數學的教學,學習與探索_復華中學教師營_中山大學應數系高中數學人才班_2021

    "Talk is cheap. Show me the code." ― Linus Torvalds 摘要: 直到, 在學習 R 語言的過程, 才發現有 Markdown 這種文 ...

  7. 從turtle海龜動畫 學習 Python - 高中彈性課程系列 3 烏龜繪圖 所需之Python基礎

    "Talk is cheap. Show me the code." ― Linus Torvalds 老子第41章 上德若谷 大白若辱 大方無隅 大器晚成 大音希聲 大象無形 道 ...

  8. 從turtle海龜動畫 學習 Python - 高中彈性課程系列 11.2 maze 迷宮 - 用 turtle 呈現演算法之執行動作

    Goal: 藉由有趣的「海龜動畫繪圖」學會基礎的 Python 程式設計 本篇介紹 Python 海龜繪圖 呈現迷宮演算法等 "Talk is cheap. Show me the code ...

  9. 從turtle海龜動畫 學習 Python - 高中彈性課程系列 6.1 內嵌正多邊形 類似禪繞圖

    Goal: 藉由有趣的「海龜動畫繪圖」學會基礎的 Python 程式設計 本篇介紹基礎的 Python 海龜動畫繪圖, 確實可以只以簡單的指令畫出極為複雜有趣或美麗的圖案: 內嵌正多邊形之圖案, 禪繞 ...

最新文章

  1. 内存储器和cpu一起构成了计算机,计算机系统的组成
  2. 与殿堂级大师隔空对话——一张纸是怎么限制了我们的想象力
  3. 什么是java中的枚举法_enum枚举javajava,enum枚举使用详解+,总结
  4. pythonajax学习_python学习-- django 2.1.7 ajax 请求
  5. 深入理解继承知识(下)
  6. 虚拟机vmware vmnet8 未识别(转)
  7. 使用runtime跳转界面
  8. spring与jdk版本要求
  9. linux 查找内容对应行数,Linux查看文件指定行数内容与查找文件内容
  10. 转自 静心梦工厂
  11. ML-Agents 安装配置 【ML-Agents 官方文档翻译(ML-Agent 1.9.1,Unity 2018-2020)】
  12. 10019---SpringBoot简介
  13. 上证50基金有哪些_【宽基系列】上证50指数基金买哪个?
  14. 关于oracle导入数据出现字符集问题及一点点解决办法!
  15. 编程王 kingofcoders.com
  16. 如何检索IDC研究报告?
  17. Spring入门书籍
  18. 微信小程序 发布后强制更新版本 强制覆盖老版本
  19. Samsara v2.0 高级技巧
  20. NCCL源码解析②:Bootstrap网络连接的建立

热门文章

  1. pytorch argmax_PyTorch深度学习模型的服务化部署
  2. suse linux运行asp,Linux Supervisor的安装与使用入门---SuSE
  3. 筛选样本_早产预测准确性创新高!3种样本PK,首次利用脂质组学筛选出生物标志物...
  4. 本科阶段计算机专业的科学体系,【学习方法】一位大三本科生的计算机科学与技术学习反思录...
  5. win8 网络 计算机,win8系统下,如何使电脑成为无线路由器?
  6. oracle odi 资料档案库访问期间出现未分类的异常错误,oracle学习_基本语法
  7. java非法字符检测_Java Web 一些特殊字符的过滤(appscan检查的安全问题)
  8. 直接学python3_学习python用python2还是python3
  9. brave浏览器_火狐联创、Java Script之父,居然也来倒腾区块链浏览器?
  10. callback函数_Nodejs 源码解析 util.promisify 如何将 Callback 转为 Promise