Koray Kırdinli

Yazılım ve İş Yaşamı Hakkında Paylaşımlar

Kod ile istenilen kontrole event fırlatmak.

Bu örnekte koddan manuel event fırlatma ihtiyacınız olduğunda kullanabileceğiniz küçük bir metod paylaşıyorum. Aşağıdaki örnekte textbox’a sanki 1 tuşana basılmış gibi bir event fırlatıyoruz. Bu metod ile Keyboard nesnesi üzerindeki istediğimiz herhangi bir eventi fırlatabiliriz. Umarım bir yerlerde işinize yarar.

//Event Çağrılıyor.
currentTextbox.RaiseManuelEvent("1", Keyboard.KeyDownEvent);

public void RaiseManuelEvent(string charToSend, RoutedEvent routedEvent)
{
var key = GetKey(charToSend);   // Key to send
var target = XText;    // Target element
//var routedEvent = Keyboard.KeyDownEvent; // Event to send

target.RaiseEvent(
new KeyEventArgs(
Keyboard.PrimaryDevice,
PresentationSource.FromVisual(target),
0,
key) { RoutedEvent = routedEvent }
);
}

//Stringden Key değerini bulan metod.
private Key GetKey(string value)
{
KeyConverter k = new KeyConverter();
Key key = (Key)k.ConvertFromString(value);
return key;
}
Reklamlar

Eylül 9, 2013 Posted by | C# | , , | Yorum bırakın