HOW TO:處理 JScript 中的事件
事件是指使用者一般執行的動作,例如按下滑鼠按鈕、按下按鍵、變更資料,或是開啟文件或表單。 此外,程式碼也可以執行動作。 事件處理常式是繫結至事件的方法。 當事件引發時,會執行事件處理常式內的程式碼。 JScript .NET 事件處理常式可以連接任何類型的 .NET 應用程式 (ASP.NET、Windows Form、主控台等) 中的事件。 不過,新事件無法在 JScript 中宣告。 JScript 程式碼只能使用已存在的事件。
若要為按鈕控制項的 Click 事件建立事件處理常式
加入以下程式碼:
// Events.js import System; import System.Windows.Forms; import System.Drawing; import Accessibility; class EventTestForm extends Form { var btn : Button; function EventTestForm() { btn = new Button; btn.Text = "Fire Event"; Controls.Add(btn); // Connect the function to the event. btn.add_Click(ButtonEventHandler1); btn.add_Click(ButtonEventHandler2); } // Add an event handler to respond to the Click event raised // by the Button control. function ButtonEventHandler1(sender, e : EventArgs) { MessageBox.Show("Event is Fired!"); } function ButtonEventHandler2(sender, e : EventArgs) { MessageBox.Show("Another Event is Fired!"); } } Application.Run(new EventTestForm);
注意事項
每個事件處理常式都會提供兩個參數。 第一個參數為 sender,提供引發事件的物件參考。 上例中的第二個參數 e,會傳遞特定的物件到要處理的事件。 藉由參考物件的屬性 (有時候是它的方法),您可以取得一些資訊,例如:mouse 事件的滑鼠位置,或是 drag-and-drop 事件中傳送的資料。
若要編譯程式碼
使用 Visual Studio 提供的命令列編譯器 jsc.exe。
輸入下列命令列指示詞,建立名為 Events.exe 的 Windows 可執行檔 (EXE) 程式︰
jsc /target:winexe Events.js
注意事項
引發單一事件可能會因為將所需的多個函式連結至事件,而導致呼叫多個事件處理常式︰
btn.add_Click(ButtonEventHandler1); btn.add_Click(ButtonEventHandler2); . . .