0

假设我想在TextBox上使用TextChanged事件。为什么事件在 aspx 文件中显示为“OnTextChanged”?

 <asp:TextBox ID="Textbox1" runat="server" 
    OnTextChanged="Textbox1_TextChanged"></asp:TextBox>

来自 WPF 和 WinForms 背景,这对我来说似乎很奇怪。我习惯于看到以相同方式引用的事件名称。后台发生了什么将“OnTextChanged”更改为“TextChanged”。

4

2 回答 2

2

TextChanged是一个事件OnTextChanged是一个处理委托。您不能分配给事件。而不是你在vb代码中,而是你在声明性语法中AddHandler为属性分配一个值。OnTextChanged我认为不同之处在于方向事件来自一个对象,但方法引用被分配某个属性。所以On前缀是为了强调区别。

该班有

Public Event TextChanged As EventHandler

Protected Overridable Sub OnTextChanged (e As EventArgs )

是引发事件的方法。有类似的逻辑。

于 2013-05-09T19:27:55.590 回答
2

我很确定这只是一个约定。似乎事件不是以 On 开头的,但可覆盖的函数却是。

Public Event TextChanged(sender As Object, e As System.EventArgs)

对比

Protected Overridable Sub OnTextChanged(e As System.EventArgs)
于 2013-05-09T19:30:04.117 回答