rss

NONTON TV VIDEO STRIMING YUK LEWAT ONLINE...


Powered by www.tvone.co.id
(Double click pada layar TV untuk fullscreen, klik stop untuk berhenti)



jadwal acara dan situs resmi TV ONE www.tvone.co.id




Sabtu, 22 Agustus 2009

Add / remove event Handler on Dinamic Control (.Net)

KATEGORI ARTIKEL: Add/Remove Event Handler on Dinamic Control (.NET)
EMAIL: staftuhan@gmail.com
AUTHOR: Makhluk Namex
ARTIKEL: .NET lets you add and remove Event Handlers dynamically on the fly. Your code can start and stop handling events at any time during program execution. Also, you can tie the same code (event handler) to multiple events similar to the Handles clause in VB.NET.

The VB.NET AddHandler and RemoveHandler statements allow this behavior. Both statements take two arguments: the name of the event to handle and the name of the procedure that will handle the event.

Dynamically add and remove an event handler in VB.NET:

Public Class MyClass
\'
\' Declare the event to be raised.
\'
Public Event MyEvent

Sub RaiseMyEvent()
\'
\' Method to raise the event.
\'
RaiseEvent MyEvent
End Sub
End Class

Public Class Test
Sub TestEvent()
\'
\' Create the object that raises the event you want to handle.
\'
Dim myobj As New MyClass()
\'
\' Associate the code to be executed (event handler) with the event.
\'
AddHandler myobj.myEvent, AddressOf MyEventHandler
\'
\' Tell the object to raise the event. It will be handled by sub MyEventHandler.
\'
myObj.RaiseMyEvent()
\'
\' Dis-associate the handler from the event.
\'
RemoveHandler myobj.myEvent, AddressOf MyEventHandler
\'
\' Tell the object to raise the event. It will NOT be handled by sub MyEventHandler.
\'
myObj.RaiseEvent()
End Sub

Sub MyEventHandler()
\'
\' Code to be executed when the event is raised.
\'
MsgBox(\"I caught the event!\")
End Sub
End Class

C# lets you to do the same using delegates which is what VB uses behind the scenes. To learn more about delegates and how to define event arguments click here.

namespace MyClass
{
public delegate void MyEventHandler(EventArgs e);

public class MyClass
{
// Declare the event to be raised.
public event MyEventHandler MyEvent;

public void RaiseMyEvent()
{
// Method to raise the event.
MyEvent(EventArgs.Empty);
}
} //MyClass
} //namespace

public class Test
public void TestEvent()
{
//
// Create the object that raises the event you want to handle.
//
MyClass myobj = new MyClass();
//
// Associate the handler with the event.
//
myobj.MyEvent += new MyEventHandler(MyHandler);
//
// Tell the object to raise the event. It will be handled by sub MyHandler.
//
myObj.RaiseMyEvent()
//
// Dis-associate the handler from the event.
//
myobj.MyEvent -= new MyEventHandler(MyHandler);
}

public void MyHandler()
{
// Code to be executed when the event is raised.
MessageBox.Show(\"I caught the event!\");
}
}

You can associate the same handler to multiple events in VB.NET:

AddHandler Textbox1.KeyPress, AddressOf NumericValuesOnly
AddHandler Textbox2.KeyPress, AddressOf NumericValuesOnly
. . .
AddHandler TextboxN.KeyPress, AddressOf NumericValuesOnly

Sub NumericValuesOnly(_
ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.KeyPressEventArgs)

Select Case Asc(e.KeyChar)
Case AscW(ControlChars.Cr) \'Enter key
e.Handled = True

Case AscW(ControlChars.Back) \'Backspace

Case 45, 46, 48 To 57 \'Negative sign, Decimal and Numbers

Case Else \' Everything else
e.Handled = True
End Select
End Sub

C# also lets you add and remove event handlers dynamically:

Textbox1.KeyPress += new System.EventHandler(NumericValuesOnly);
Textbox2.KeyPress += new System.EventHandler(NumericValuesOnly);
. . .
TextboxN.KeyPress += new System.EventHandler(NumericValuesOnly);

private void NumericValuesOnly(object sender,
System.Windows.Forms.KeyPressEventArgs e )
{
. . .
}

//
// Remove handlers from the KeyPress events.
//
Textbox1.KeyPress -= new System.EventHandler(NumericValuesOnly);
Textbox2.KeyPress -= new System.EventHandler(NumericValuesOnly);
TextboxN.KeyPress -= new System.EventHandler(NumericValuesOnly);


Source : http://www.thescarms.com/dotnet/EventHandler.aspx
---------------------------------------------------------------------
Visitor Ip: 120.161.177.189

Tidak ada komentar:

Posting Komentar