Eventhandler
-
How to write common event handler which can accept range through EventArgs.Is it possible to write my own Eventargs derive from System.EventArgs, so that i can pass arguments when event handlers get called. Please tell me how to acheive this. I have two textboxes called textbox1 and textbox2 each accept integer values with different range textbox1 accept values between 1800-2200 textbox2 accept values between 2400-2800 i have onenter event handler for both the textboxes like this //delegate and event handler for first text box this.YearBuiltTextBox.Enter += new EventHandler(Parse_TextBox1); public void Parse_TextBox1(System.Object sender, System.EventArgs e) { try { if (this.YearBuiltTextBox.Enabled == false) return; object parseValue = DataFormatter.ParseInteger(this.YearBuiltTextBox.Text,1800, 2200); } } //delegate and event handler for second text box this.YearRenovateTextBox.Enter += new EventHandler(Parse_TextBox2); public void Parse_TextBox2(System.Object sender, System.EventArgs e) { try { if (this.YearRenovateTextBox.Enabled == false) return; object parseValue = DataFormatter.ParseInteger(this.YearBuiltTextBox.Text,2400, 2800); } } How to write common event handler for this...
-
How to write common event handler which can accept range through EventArgs.Is it possible to write my own Eventargs derive from System.EventArgs, so that i can pass arguments when event handlers get called. Please tell me how to acheive this. I have two textboxes called textbox1 and textbox2 each accept integer values with different range textbox1 accept values between 1800-2200 textbox2 accept values between 2400-2800 i have onenter event handler for both the textboxes like this //delegate and event handler for first text box this.YearBuiltTextBox.Enter += new EventHandler(Parse_TextBox1); public void Parse_TextBox1(System.Object sender, System.EventArgs e) { try { if (this.YearBuiltTextBox.Enabled == false) return; object parseValue = DataFormatter.ParseInteger(this.YearBuiltTextBox.Text,1800, 2200); } } //delegate and event handler for second text box this.YearRenovateTextBox.Enter += new EventHandler(Parse_TextBox2); public void Parse_TextBox2(System.Object sender, System.EventArgs e) { try { if (this.YearRenovateTextBox.Enabled == false) return; object parseValue = DataFormatter.ParseInteger(this.YearBuiltTextBox.Text,2400, 2800); } } How to write common event handler for this...
Yes, you can derive your own class from EventArgs and add custom fields to it. I'm wondering how it would help you solve your problem, in your case, you know beforehand the range of valid values that YearBuiltTextBox and YearRenovateTextBox can accept. Why not put the range information in a hashtable or similar datastructure and do the ParseInteger stuff after retrieving the range? I'm suggesting something like this
Hashtable rangeMap = new Hashtable();
rangeMap[YearBuiltTextBox] = new int[] {1800, 2200};
rangeMap[YearRenovateTextBox] = new int[] {2400, 2800};this.YearRenovateTextBox.Enter += new EventHandler(Parse_TextBox);
this.YearBuiltTextBox.Enter += new EventHandler(Parse_TextBox);and withing ParseTextBox
public void Parse_TextBox(System.Object sender, System.EventArgs e)
{
int[] range = (int[])rangeMap[sender];
object parseValue = DataFormatter.ParseInteger(this.YearBuiltTextBox.Text,range[0], range[1]);
}Hope this helps. Regards Senthil _____________________________ My Blog | My Articles | WinMacro
-
How to write common event handler which can accept range through EventArgs.Is it possible to write my own Eventargs derive from System.EventArgs, so that i can pass arguments when event handlers get called. Please tell me how to acheive this. I have two textboxes called textbox1 and textbox2 each accept integer values with different range textbox1 accept values between 1800-2200 textbox2 accept values between 2400-2800 i have onenter event handler for both the textboxes like this //delegate and event handler for first text box this.YearBuiltTextBox.Enter += new EventHandler(Parse_TextBox1); public void Parse_TextBox1(System.Object sender, System.EventArgs e) { try { if (this.YearBuiltTextBox.Enabled == false) return; object parseValue = DataFormatter.ParseInteger(this.YearBuiltTextBox.Text,1800, 2200); } } //delegate and event handler for second text box this.YearRenovateTextBox.Enter += new EventHandler(Parse_TextBox2); public void Parse_TextBox2(System.Object sender, System.EventArgs e) { try { if (this.YearRenovateTextBox.Enabled == false) return; object parseValue = DataFormatter.ParseInteger(this.YearBuiltTextBox.Text,2400, 2800); } } How to write common event handler for this...
you could use one event hander for both textBoxes i.e.
textbox1.enter += new EventHandler(myEventHandler); textbox2.enter += new EventHandler(myEventHandler); public void myEventHandler(object sender,EventArg e) { /* you could skip this and just use it like ((TextBox)sender).Name */ TextBox tmpBox = (TextBox)sender; if(tmpBox.Name == "textbox1") { //2400, 2800 } else { //1800, 2200 } }
-
How to write common event handler which can accept range through EventArgs.Is it possible to write my own Eventargs derive from System.EventArgs, so that i can pass arguments when event handlers get called. Please tell me how to acheive this. I have two textboxes called textbox1 and textbox2 each accept integer values with different range textbox1 accept values between 1800-2200 textbox2 accept values between 2400-2800 i have onenter event handler for both the textboxes like this //delegate and event handler for first text box this.YearBuiltTextBox.Enter += new EventHandler(Parse_TextBox1); public void Parse_TextBox1(System.Object sender, System.EventArgs e) { try { if (this.YearBuiltTextBox.Enabled == false) return; object parseValue = DataFormatter.ParseInteger(this.YearBuiltTextBox.Text,1800, 2200); } } //delegate and event handler for second text box this.YearRenovateTextBox.Enter += new EventHandler(Parse_TextBox2); public void Parse_TextBox2(System.Object sender, System.EventArgs e) { try { if (this.YearRenovateTextBox.Enabled == false) return; object parseValue = DataFormatter.ParseInteger(this.YearBuiltTextBox.Text,2400, 2800); } } How to write common event handler for this...
If you need to, you can write your own event arguments simply by writing a class that derives from System.EventArgs. However, you wouldn't be able to raise the event with your new arguments unless you inherit from the TextBox class and raise it yourself with your own arguments. Here is a common handler for both:
this.yearBuiltTextBox.Enter += new EventHandler(Parse_TextBox);
this.yearRenovateTextBox.Enter += new EventHandler(Parse_TextBox);void ParseTextBox(object sender, EventArgs e)
{
TextBox tbSender = (TextBox)sender;
if(sender.Enabled == false)
{
return;
}int min, max;
if(tbSender == this.yearBuiltTextBox)
{
min = 1800;
max = 2200;
}
else
{
min = 2400;
max = 2800;
}object parseValue = DataFormatter.ParseInteger(this.yearBuiltTextBox.Text, min, max);
}Tech, life, family, faith: Give me a visit. I'm currently blogging about: Homosexuality in Christianity Judah Himango
-
If you need to, you can write your own event arguments simply by writing a class that derives from System.EventArgs. However, you wouldn't be able to raise the event with your new arguments unless you inherit from the TextBox class and raise it yourself with your own arguments. Here is a common handler for both:
this.yearBuiltTextBox.Enter += new EventHandler(Parse_TextBox);
this.yearRenovateTextBox.Enter += new EventHandler(Parse_TextBox);void ParseTextBox(object sender, EventArgs e)
{
TextBox tbSender = (TextBox)sender;
if(sender.Enabled == false)
{
return;
}int min, max;
if(tbSender == this.yearBuiltTextBox)
{
min = 1800;
max = 2200;
}
else
{
min = 2400;
max = 2800;
}object parseValue = DataFormatter.ParseInteger(this.yearBuiltTextBox.Text, min, max);
}Tech, life, family, faith: Give me a visit. I'm currently blogging about: Homosexuality in Christianity Judah Himango