Announcement

Collapse

Looking for a User App or Add-On built by the NinjaTrader community?

Visit NinjaTrader EcoSystem and our free User App Share!

Have a question for the NinjaScript developer community? Open a new thread in our NinjaScript File Sharing Discussion Forum!
See more
See less

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:	153
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.
    JesseNinjaTrader Customer Service

    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 CortexZenUSA, Today, 12:53 AM
      0 responses
      1 view
      0 likes
      Last Post CortexZenUSA  
      Started by CortexZenUSA, Today, 12:46 AM
      0 responses
      1 view
      0 likes
      Last Post CortexZenUSA  
      Started by usazencortex, Today, 12:43 AM
      0 responses
      5 views
      0 likes
      Last Post usazencortex  
      Started by sidlercom80, 10-28-2023, 08:49 AM
      168 responses
      2,265 views
      0 likes
      Last Post sidlercom80  
      Started by Barry Milan, Yesterday, 10:35 PM
      3 responses
      11 views
      0 likes
      Last Post NinjaTrader_Manfred  
      Working...
      X