Announcement

Collapse
No announcement yet.

Partner 728x90

Collapse

QuantityUpDown move cursor inside textbox element

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    QuantityUpDown move cursor inside textbox element

    Hi, how can I move the cursor left and right within a QuantityUpDown element using the arrow keys on the keyboard.
    With a normal text box you can do this with the "Caret Index" property, but this property does not exist in the "QuantityUpDown".

    Click image for larger version

Name:	QtyUpDown.gif
Views:	262
Size:	39.0 KB
ID:	1213991
    sidlercom80
    NinjaTrader Ecosystem Vendor - Sidi Trading

    #2
    Hello sidlercom80,

    The QuantityUpDown control is a custom control built for NinjaTrader, as such it does not have the same properties as a TextBox. This is a control which has multiple other WPF controls as children so you wouldn't be able to do the same tasks as a TextBox. You should be able to use the arrow keys, that works with control as shown in your video. For a custom implementation of this you would need to use the parent controls PreviewKey events to handle arrow keys to avoid other actions that may be already used by those keys. By doing that you would disable the normal functionality if this was being used in a chart. To fully handle that situation you would also need to check that the child TextBox has focus however I wouldn't be able to provide any help on how to find that textbox within the controls visual tree as it does not have an automation id.

    Comment


      #3
      For those interested in how to find a kind element (TextBox) in a QuantityUpDown control, without Automation ID:

      Code:
      public static IEnumerable<T> GetAllVisualChildsFromParent<T>(this DependencyObject depObj) where T : DependencyObject
      {[INDENT]if (depObj == null)[/INDENT][INDENT]{[/INDENT][INDENT=2]yield return (T)Enumerable.Empty<T>();[/INDENT][INDENT]}[/INDENT][INDENT]for (int i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++)[/INDENT][INDENT]{[/INDENT][INDENT=2]DependencyObject ithChild = VisualTreeHelper.GetChild(depObj, i);[/INDENT][INDENT=2]if (ithChild == null)[/INDENT][INDENT=2]{[/INDENT][INDENT=3]continue;[/INDENT][INDENT=2]}[/INDENT][INDENT=2]if (ithChild is T)[/INDENT][INDENT=2]{[/INDENT][INDENT=3]yield return (T)ithChild;[/INDENT][INDENT=2]}[/INDENT][INDENT=2]foreach (T childOfChild in GetAllVisualChildsFromParent<T>(ithChild))[/INDENT][INDENT=2]{[/INDENT][INDENT=3]yield return childOfChild;[/INDENT][INDENT=2]}[/INDENT][INDENT]}[/INDENT]
       }
      Code:
      public static TextBox GetFirstChildTextBox(this Control control)
      {[INDENT]foreach (TextBox tb in control.GetAllVisualChildsFromParent<TextBox>())[/INDENT][INDENT]{[/INDENT][INDENT=2]return tb;[/INDENT][INDENT]}[/INDENT][INDENT]return null;[/INDENT]
       }
      Code:
      var textBox = qtyUpDown.GetFirstChildTextBox();
      sidlercom80
      NinjaTrader Ecosystem Vendor - Sidi Trading

      Comment

      Latest Posts

      Collapse

      Topics Statistics Last Post
      Started by DannyP96, 05-18-2026, 02:38 PM
      1 response
      83 views
      0 likes
      Last Post NinjaTrader_ChelseaB  
      Started by CarlTrading, 05-11-2026, 05:56 AM
      0 responses
      143 views
      0 likes
      Last Post CarlTrading  
      Started by CarlTrading, 05-10-2026, 08:12 PM
      0 responses
      83 views
      0 likes
      Last Post CarlTrading  
      Started by Hwop38, 05-04-2026, 07:02 PM
      0 responses
      256 views
      0 likes
      Last Post Hwop38
      by Hwop38
       
      Started by Mindset, 04-21-2026, 06:46 AM
      0 responses
      334 views
      0 likes
      Last Post Mindset
      by Mindset
       
      Working...
      X