Solved

Visual C# - How to Capture keypress for Enter, Up, Down, Left, Right

Posted on 2008-10-29
4
5,421 Views
Last Modified: 2013-12-17
ARG !

This is driving me nutz!

I am converting one of my VB6 apps to C# (I'm pretty new to c#). I currently have this working great in VB6, but I can't seem to find how to do it in c#, I've searched the net and my 8 c# books for hours and can't figure out how to get the job done.

Here is what I need:

Need list:
I need to be able to capture keyboard events for the Up, Down, Left, & Right arrows along with the enter key in my c# application.

Want list:
I would like to be able to turn the key capture on and off.

Reason:
What this app is, is a troubleshooter of sorts, where I need the ability to test for up, down, left, right, and enter, but that is only a part of the test. After the results are in from that, I don't want it to keep detecting those motions.

I would REALLY appreciate some help here guys.

Thanks!
0
Comment
Question by:MiSheps
  • 2
  • 2
4 Comments
 

Author Comment

by:MiSheps
ID: 22837024
ok,... i was playing around with some bits of code I found, and I think I'm almost there, but now I need to know how to turn it off. specifically the enter key.

So, here is the code I'm using now, but how to I temporarily disable the enter key press?


            protected override bool ProcessKeyPreview(ref System.Windows.Forms.Message m)

            {

                switch (m.WParam.ToInt32())

                {

                    case 37: // <--- left arrow.

                        if (MyGlobalVariables.JoystickTestRunning == true)

                        {

                            MessageBox.Show("Left");

                        }

                        break;

                    case 38: // <--- up arrow.

                        if (MyGlobalVariables.JoystickTestRunning == true)

                        {

                            MessageBox.Show("Up");

                        }

                        break;

                    case 39: // <--- right arrow.

                        if (MyGlobalVariables.JoystickTestRunning == true)

                        {

                            MessageBox.Show("Right");

                        }

                        break;

                    case 40: // <--- down arrow.

                        if (MyGlobalVariables.JoystickTestRunning == true)

                        {

                            MessageBox.Show("Down");

                        }

                        break;

                    case 13: // <--- Enter Key

                        if (MyGlobalVariables.JoystickTestRunning == true)

                        {

                            MessageBox.Show("Enter");

                        }

                        break;

                }

                return false;

            }

Open in new window

0
 
LVL 2

Expert Comment

by:Clausewitz
ID: 22840188
case 13: // <--- Enter Key
                        if (MyGlobalVariables.JoystickTestRunning == true)
                        {
                            // MessageBox.Show("Enter");
                            return true;
                        }
                        break;

If you return true, the key event is marked as processed and so the other keyboard events should not be triggered.
0
 
LVL 2

Accepted Solution

by:
Clausewitz earned 250 total points
ID: 22840261
0
 

Author Comment

by:MiSheps
ID: 22843279
ClauseWitz:

I tried your suggestion, and it didn't work, do I have something wrong?

                        case 13: // <--- Enter Key

                            if (MyGlobalVariables.JoystickTestRunning == true)

                            {

                                if (this.lblJoyStickAction2.Text == "BUTTON!")

                                {

                                    this.lblJoystickBUTTON.ForeColor = System.Drawing.Color.Black;

                                    this.lblJoystickBUTTON.BackColor = System.Drawing.Color.LightGreen;

                                    this.lblJoystickBUTTON.Text = "Joystick BUTTON Passed!";

                                    MyGlobalVariables.EndResultJoystickBUTTON = "Joystick BUTTON Passed!";

                                    MyGlobalVariables.JoyStickBUTTONFailed = false;
 

                                    this.timer1.Enabled = false;

                                    this.btnRunIndividualTests3.Visible = true;

                                    this.btnRunIndividualTests3.BringToFront();
 

                                    this.lblJoyStickAction1.Text = "Move Joystick";

                                    this.lblJoyStickAction2.Text = "UP!";

                                    this.lblJoyStickAction1.Visible = false;

                                    this.lblJoyStickAction2.Visible = false;

                                    this.btnJoystickNotWork.Visible = false;

                                    this.lblJoystick.Visible = false;

                                    this.btnShutdown.Visible = true;

                                    this.lblCountdownTime.Text = MyGlobalVariables.JoyStickWaitTimer;

                                    this.DisplayJoystickResults();

                                    return true;

                                }

                            }

                            break;

Open in new window

0

Featured Post

Better Security Awareness With Threat Intelligence

See how one of the leading financial services organizations uses Recorded Future as part of a holistic threat intelligence program to promote security awareness and proactively and efficiently identify threats.

Join & Write a Comment

Flash (http://en.wikipedia.org/wiki/Adobe_Flash) has evolved over the years to where it has become a masterful tool for displaying content screen.  It has excellent layout placement, UI precision as well as rendering capabilities. This, along with t…
Welcome my friends to the second instalment and follow-up to our Minify and Concatenate Your Scripts and Stylesheets (http://www.experts-exchange.com/Programming/Languages/.NET/ASP.NET/A_4334-Minify-and-Concatenate-Your-Scripts-and-Stylesheets.html)…
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…
This video explains how to create simple products associated to Magento configurable product and offers fast way of their generation with Store Manager for Magento tool.

747 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now