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. radiobutton BeforeStateChange ?

radiobutton BeforeStateChange ?

Scheduled Pinned Locked Moved C#
question
14 Posts 4 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.
  • F Offline
    F Offline
    fracalifa
    wrote on last edited by
    #1

    Hi all, depending on an access level of my app's I want to suppress a statechange of a radiobutton field (without disabling the controls). On a checkbox control I can override the onclick event and use the BeforeStateChange event. A radiobutton doesn't have such an event. Who has an idea to do that ? tnx Frank fracalifa

    M L R 4 Replies Last reply
    0
    • F fracalifa

      Hi all, depending on an access level of my app's I want to suppress a statechange of a radiobutton field (without disabling the controls). On a checkbox control I can override the onclick event and use the BeforeStateChange event. A radiobutton doesn't have such an event. Who has an idea to do that ? tnx Frank fracalifa

      M Offline
      M Offline
      Martin 0
      wrote on last edited by
      #2

      Hello, You could still override OnClick, and use MouseDown as for the functionality of BeforeStateChange. Or fire your own event in the OnClick Method.

      All the best, Martin

      1 Reply Last reply
      0
      • F fracalifa

        Hi all, depending on an access level of my app's I want to suppress a statechange of a radiobutton field (without disabling the controls). On a checkbox control I can override the onclick event and use the BeforeStateChange event. A radiobutton doesn't have such an event. Who has an idea to do that ? tnx Frank fracalifa

        L Offline
        L Offline
        Luc Pattyn
        wrote on last edited by
        #3

        Hi, dont know about BeforeStateChange event, it is not in my MSDN documentation. Same MSDN documentation says one should not use RadioButton.OnClick for RadioButtons you can set AutoCheck=false and do all the Checked logic yourself. I consider it bad practice to change the behavior of a standard Control: a RadioButton (group) should either be enabled and you can operate it normally, or disabled and you cant operate it at all. For me there is no way in between. :)

        Luc Pattyn


        try { [Search CP Articles] [Search CP Forums] [Forum Guidelines] [My Articles] } catch { [Google] }


        M F 2 Replies Last reply
        0
        • L Luc Pattyn

          Hi, dont know about BeforeStateChange event, it is not in my MSDN documentation. Same MSDN documentation says one should not use RadioButton.OnClick for RadioButtons you can set AutoCheck=false and do all the Checked logic yourself. I consider it bad practice to change the behavior of a standard Control: a RadioButton (group) should either be enabled and you can operate it normally, or disabled and you cant operate it at all. For me there is no way in between. :)

          Luc Pattyn


          try { [Search CP Articles] [Search CP Forums] [Forum Guidelines] [My Articles] } catch { [Google] }


          M Offline
          M Offline
          Martin 0
          wrote on last edited by
          #4

          Hello Luc,

          Luc Pattyn wrote:

          I consider it bad practice to change the behavior of a standard Control

          I don't agree in this point, as I often manipulat standard Controls for my needs. As "overriding" gives me the chance to change the behavior of controls in the way my "customer" is used to it from machines my company delivered years ago. And I think the point is, as some people (including me) are not doing WEB Applications or standard Windows Application for PC's, your statement doesn't fit for all. :)

          All the best, Martin

          1 Reply Last reply
          0
          • F fracalifa

            Hi all, depending on an access level of my app's I want to suppress a statechange of a radiobutton field (without disabling the controls). On a checkbox control I can override the onclick event and use the BeforeStateChange event. A radiobutton doesn't have such an event. Who has an idea to do that ? tnx Frank fracalifa

            R Offline
            R Offline
            ruanr
            wrote on last edited by
            #5

            A simple solution is to intercept checkchanged, and set the button back to checked if it is not checked. Not the most elegant though :)

            1 Reply Last reply
            0
            • L Luc Pattyn

              Hi, dont know about BeforeStateChange event, it is not in my MSDN documentation. Same MSDN documentation says one should not use RadioButton.OnClick for RadioButtons you can set AutoCheck=false and do all the Checked logic yourself. I consider it bad practice to change the behavior of a standard Control: a RadioButton (group) should either be enabled and you can operate it normally, or disabled and you cant operate it at all. For me there is no way in between. :)

              Luc Pattyn


              try { [Search CP Articles] [Search CP Forums] [Forum Guidelines] [My Articles] } catch { [Google] }


              F Offline
              F Offline
              fracalifa
              wrote on last edited by
              #6

              Hi Luc, you are right, sorry, I override the onclick event and created an own event called checkBeforeChange like this protected override void OnClick(EventArgs e) { if(this.BeforeStateChange != null) { this.BeforeStateChange(this, ref cancelStateChg); } if(this.cancelStateChg) { this.Checked = !this.Checked; } base.OnClick (e); } this code is working on a checkbox, but not on a radiobutton. I would use enable=true/false but the bad is the color change to gray. If I could prevent the colorchange, everything would be fine. Frank -- modified at 6:37 Thursday 12th July, 2007

              L 1 Reply Last reply
              0
              • F fracalifa

                Hi Luc, you are right, sorry, I override the onclick event and created an own event called checkBeforeChange like this protected override void OnClick(EventArgs e) { if(this.BeforeStateChange != null) { this.BeforeStateChange(this, ref cancelStateChg); } if(this.cancelStateChg) { this.Checked = !this.Checked; } base.OnClick (e); } this code is working on a checkbox, but not on a radiobutton. I would use enable=true/false but the bad is the color change to gray. If I could prevent the colorchange, everything would be fine. Frank -- modified at 6:37 Thursday 12th July, 2007

                L Offline
                L Offline
                Luc Pattyn
                wrote on last edited by
                #7

                I understand that, but the basic point is a Control that is disabled MUST look different; if it did not, the user would manipulate it unknowingly, and then complain it does not work as expected. :)

                Luc Pattyn


                try { [Search CP Articles] [Search CP Forums] [Forum Guidelines] [My Articles] } catch { [Google] }


                F 1 Reply Last reply
                0
                • F fracalifa

                  Hi all, depending on an access level of my app's I want to suppress a statechange of a radiobutton field (without disabling the controls). On a checkbox control I can override the onclick event and use the BeforeStateChange event. A radiobutton doesn't have such an event. Who has an idea to do that ? tnx Frank fracalifa

                  M Offline
                  M Offline
                  Martin 0
                  wrote on last edited by
                  #8

                  Hello,

                  fracalifa wrote per e-mail:

                  Hi Martin, tnx, that works, but how can I prevent the statechange of the radiobutton ? Is there a cancel option which I can use for? Tnx Frank [confused]

                  I haven't even found "statechange", is it .NET>1.1? P.S.: please respond in the forum, cause I'm not answering per e-mail!

                  All the best, Martin

                  F 1 Reply Last reply
                  0
                  • L Luc Pattyn

                    I understand that, but the basic point is a Control that is disabled MUST look different; if it did not, the user would manipulate it unknowingly, and then complain it does not work as expected. :)

                    Luc Pattyn


                    try { [Search CP Articles] [Search CP Forums] [Forum Guidelines] [My Articles] } catch { [Google] }


                    F Offline
                    F Offline
                    fracalifa
                    wrote on last edited by
                    #9

                    Hi luc a disabled control should look different, but in a way I can decide of, and not in the way MS do. tnx

                    L 1 Reply Last reply
                    0
                    • M Martin 0

                      Hello,

                      fracalifa wrote per e-mail:

                      Hi Martin, tnx, that works, but how can I prevent the statechange of the radiobutton ? Is there a cancel option which I can use for? Tnx Frank [confused]

                      I haven't even found "statechange", is it .NET>1.1? P.S.: please respond in the forum, cause I'm not answering per e-mail!

                      All the best, Martin

                      F Offline
                      F Offline
                      fracalifa
                      wrote on last edited by
                      #10

                      Hi Martin, other than a checkbox a radiobutton is a group of controls. With the checkbox I can do suppressing the toggle of the state, with the radiobutton(s) I can do not.My wish is to prevent the change of state from uncheched to checked when clicking on it, that's all (without enable = false). tnx Frank

                      M 1 Reply Last reply
                      0
                      • F fracalifa

                        Hi Martin, other than a checkbox a radiobutton is a group of controls. With the checkbox I can do suppressing the toggle of the state, with the radiobutton(s) I can do not.My wish is to prevent the change of state from uncheched to checked when clicking on it, that's all (without enable = false). tnx Frank

                        M Offline
                        M Offline
                        Martin 0
                        wrote on last edited by
                        #11

                        But haven't you allready told the solution with overriding the OnClick. I tested it with an inherited (from RadioButton) control.

                        	private bool \_disable = false;
                        	public bool Disable
                        	{
                        		get
                        		{
                        			return \_disable;
                        		}
                        		set
                        		{
                        			if(value!=\_disable)
                        			{
                        				\_disable = value;
                        			}
                        		}
                        	}
                        
                        	protected override void OnClick(EventArgs e)
                        	{
                        		if(!Disable)
                        			base.OnClick (e);
                        	}
                        

                        Works well for me.

                        All the best, Martin

                        F 1 Reply Last reply
                        0
                        • M Martin 0

                          But haven't you allready told the solution with overriding the OnClick. I tested it with an inherited (from RadioButton) control.

                          	private bool \_disable = false;
                          	public bool Disable
                          	{
                          		get
                          		{
                          			return \_disable;
                          		}
                          		set
                          		{
                          			if(value!=\_disable)
                          			{
                          				\_disable = value;
                          			}
                          		}
                          	}
                          
                          	protected override void OnClick(EventArgs e)
                          	{
                          		if(!Disable)
                          			base.OnClick (e);
                          	}
                          

                          Works well for me.

                          All the best, Martin

                          F Offline
                          F Offline
                          fracalifa
                          wrote on last edited by
                          #12

                          Yes, that's it, my fault was the calling of the base class even when it is disabled. tnx

                          M 1 Reply Last reply
                          0
                          • F fracalifa

                            Yes, that's it, my fault was the calling of the base class even when it is disabled. tnx

                            M Offline
                            M Offline
                            Martin 0
                            wrote on last edited by
                            #13

                            Glad I could help! You are wellcome!

                            All the best, Martin

                            1 Reply Last reply
                            0
                            • F fracalifa

                              Hi luc a disabled control should look different, but in a way I can decide of, and not in the way MS do. tnx

                              L Offline
                              L Offline
                              Luc Pattyn
                              wrote on last edited by
                              #14

                              Standards are fantastic. Everyone should have one. :)

                              Luc Pattyn


                              try { [Search CP Articles] [Search CP Forums] [Forum Guidelines] [My Articles] } catch { [Google] }


                              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