Your Privacy Matters: We use our own and third-party cookies to improve your experience on our website. By continuing to use the website we understand that you accept their use. Cookie Policy
40
KeyDown event not firing for all keys on certain cells of a Ultragrid
posted

I have an UltraGrid control on my form that handles KeyDown events on certain cells without a problem. I am using the keydown event to enable 'Excel-like' navigation between cells/rows using the arrow keys. However, certain cells don't appear to fire the KeyDown event when the arrow keys are pressed. When they are pressed the focus moves to a different control on the form. Other keys seem to work fine, i.e. the event is fired.

The cells where this occurs have checkboxes or masked text (formatted date/time) and all are set to 'NoEdit'. I'm reasonably certain this is the root of the problem, but I've read that the UltraGrid's keydown event should still fire for these cells.

Any suggestions on what might be consuming the KeyDown message before the UltraGrid receives it?

  • 469350
    Offline posted

    Which keys don't fire the events? There are certain keys, like the Tab key, that are handled by the form and no control will get a KeyDown event for them.

    It's also possible that your form has a toolbar or menu that is handling some keys before they get to the grid for processing.

     

    Also... what version of the grid are you using?

    • 40
      posted in reply to Mike Saltzman

      Hi Mike,

      The following keys don't fire the events:
      Tab
      Escape
      Enter
      PrtScn
      F1, F3, F5, F6
      Arrow keys ('standard' and num pad w/num lock off) (on certain cells)

      As you said, keys like the Tab key are processed by the form (the same is probably true for Escape, Enter, PrtScn and the Function keys).

      The arrow keys do fire the KeyDown event except when the cells contains something other than 'plain' text.

      The grid is version 9.1.

      Thanks.

      • 20872
        Offline posted in reply to Surya Prakash

        Hello Ayrus,

        I am glad that everything works fine now.

        If you have any other questions please feel free to let us know.

        • 275
          Offline posted in reply to Danko Valkov

          Thanks Danko. Re-installed the tool and it works fine now..

          Thanks for timely response.

          • 20872
            Offline posted in reply to Surya Prakash

            Hello Ayrus,

            I have tried this using NetAdvantage for Windows Forms 2011 vol2  and it works fine for me.
            Could you please verify that your UltraGrid has the focus when you are pressing F1, and also if it is hooked correctly to the mentioned KeyDown event ?

            What version of the NetAdvantage controls you are using in your application?

            If you have any other questions please feel free to let us know. 

            • 275
              Offline posted in reply to Danko Valkov

              Hi,

              None of this seem to be working; not sure if there any issue with my code.

              Please could you evaluate below code:

              Private Sub UltraGrid1_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles UltraGrid1.KeyDown

                      If e.KeyCode = Keys.Enter Then
                          MsgBox("Enter eydown")
                      ElseIf e.KeyCode = Keys.F1 Then
                          MsgBox("F1 clicked")
                      End If

              ' Or

                      If e.KeyData = Keys.F1 Then
                          MsgBox("F1 clicked")
                      End If

                  End Sub

              • 20872
                Offline posted in reply to Surya Prakash

                Hello Ayrus,

                Your code is actually checking if you have pressed "F10" instead of "F1":

                ElseIf e.KeyCode = Keys.F10 Then
                            MsgBox("F1 clicked")

                        End If

                If you change the Keys.F10 to Keys.F1 it should work.

                Please feel free to let us know if you have any other questions with this matter.