Jump to content
    1. Welcome to GTAForums!

    1. GTANet.com

    1. GTA Online

      1. Los Santos Drug Wars
      2. Updates
      3. Find Lobbies & Players
      4. Guides & Strategies
      5. Vehicles
      6. Content Creator
      7. Help & Support
    2. Red Dead Online

      1. Blood Money
      2. Frontier Pursuits
      3. Find Lobbies & Outlaws
      4. Help & Support
    3. Crews

    1. Grand Theft Auto Series

      1. Bugs*
      2. St. Andrews Cathedral
    2. GTA VI

    3. GTA V

      1. Guides & Strategies
      2. Help & Support
    4. GTA IV

      1. The Lost and Damned
      2. The Ballad of Gay Tony
      3. Guides & Strategies
      4. Help & Support
    5. GTA San Andreas

      1. Classic GTA SA
      2. Guides & Strategies
      3. Help & Support
    6. GTA Vice City

      1. Classic GTA VC
      2. Guides & Strategies
      3. Help & Support
    7. GTA III

      1. Classic GTA III
      2. Guides & Strategies
      3. Help & Support
    8. Portable Games

      1. GTA Chinatown Wars
      2. GTA Vice City Stories
      3. GTA Liberty City Stories
    9. Top-Down Games

      1. GTA Advance
      2. GTA 2
      3. GTA
    1. Red Dead Redemption 2

      1. PC
      2. Help & Support
    2. Red Dead Redemption

    1. GTA Mods

      1. GTA V
      2. GTA IV
      3. GTA III, VC & SA
      4. Tutorials
    2. Red Dead Mods

      1. Documentation
    3. Mod Showroom

      1. Scripts & Plugins
      2. Maps
      3. Total Conversions
      4. Vehicles
      5. Textures
      6. Characters
      7. Tools
      8. Other
      9. Workshop
    4. Featured Mods

      1. Design Your Own Mission
      2. OpenIV
      3. GTA: Underground
      4. GTA: Liberty City
      5. GTA: State of Liberty
    1. Rockstar Games

    2. Rockstar Collectors

    1. Off-Topic

      1. General Chat
      2. Gaming
      3. Technology
      4. Movies & TV
      5. Music
      6. Sports
      7. Vehicles
    2. Expression

      1. Graphics / Visual Arts
      2. GFX Requests & Tutorials
      3. Writers' Discussion
      4. Debates & Discussion
    1. Announcements

    2. Forum Support

    3. Suggestions

How to filter a key press the right way (C#)


Cyron43
 Share

Recommended Posts

Hi guys,
there are times when I face a certain problem when I create mods. I set a specific key for an action (let's say Ctrl+T) and then when I test my mod I get a response from another mod written by someone else. His description claims one has to press T. Yes, just T and not Ctrl+T. There is just one keyboard but a gazillion mods and so I think it's about time to teach you how to do it right, for the sake of the modder community. Here is a typical KeyDown event handler:

private void OnKeyDown(object sender, KeyEventArgs e){   if(e.KeyCode == Keys.T)   {      // do something...   }}

Do your KeyDown handlers look like this (or KeyUp handler, that doesn't matter)? Then you're doing it wrong! This method doesn't care if you press either Ctrl, Shift and/or Alt in addition.
Here is how to do it right:

private void OnKeyDown(object sender, KeyEventArgs e){   if(!e.Alt      && !e.Control      && e.KeyCode == Keys.T      && !e.Shift)   {      // do something...   }}

This assures your mod reacts only on T but not to any other combination with T. So the combinations are still free for other mods.
Another example. Let's say you want to handle Ctrl+Shift+X (watch closely for the exclamation marks).

private void OnKeyDown(object sender, KeyEventArgs e){   if(!e.Alt      && e.Control      && e.KeyCode == Keys.X      && e.Shift)   {      // do something...   }}
Edited by Cyron43
  • Like 1
Link to comment
Share on other sites

MrGTAmodsgerman

Danke, eine Frage, ist die Reihenfolge egal? Also z.B

private void OnKeyDown(object sender, KeyEventArgs e){   if(!e.Alt      && e.Control      && e.Shift)      && e.KeyCode == Keys.X   {      // do something...   }}

?

Link to comment
Share on other sites

Danke, eine Frage, ist die Reihenfolge egal? Also z.B

private void OnKeyDown(object sender, KeyEventArgs e){   if(!e.Alt      && e.Control      && e.Shift)      && e.KeyCode == Keys.X   {      // do something...   }}

?

Ja, das ist hier egal. :)

Edited by Cyron43
  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • 1 User Currently Viewing
    0 members, 0 Anonymous, 1 Guest

×
×
  • Create New...

Important Information

By using GTAForums.com, you agree to our Terms of Use and Privacy Policy.