Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C#
  4. Eventhandler

Eventhandler

Scheduled Pinned Locked Moved C#
tutorial
5 Posts 5 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • P Offline
    P Offline
    pssuresh
    wrote on last edited by
    #1

    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...

    S G J 3 Replies Last reply
    0
    • P pssuresh

      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...

      S Offline
      S Offline
      S Senthil Kumar
      wrote on last edited by
      #2

      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

      1 Reply Last reply
      0
      • P pssuresh

        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...

        G Offline
        G Offline
        Gavin Jeffrey
        wrote on last edited by
        #3

        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 } }

        1 Reply Last reply
        0
        • P pssuresh

          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...

          J Offline
          J Offline
          Judah Gabriel Himango
          wrote on last edited by
          #4

          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

          J 1 Reply Last reply
          0
          • J Judah Gabriel 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

            J Offline
            J Offline
            J4amieC
            wrote on last edited by
            #5

            Judah Himango wrote: if(sender.Enabled == false) object doesnt have an enabled property, so the above quoted line should have read if(tbSender.Enabled == false) or if(!tbSender.Enabled)

            1 Reply Last reply
            0
            Reply
            • Reply as topic
            Log in to reply
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes


            • Login

            • Don't have an account? Register

            • Login or register to search.
            • First post
              Last post
            0
            • Categories
            • Recent
            • Tags
            • Popular
            • World
            • Users
            • Groups