I would have thought this had a simple answer but maybe I'm overlooking something. Here's the scenario, I have an UltraTextEditor with a single DropDownEditorButton in the ButtonsRight collection. This button's Control property is wired to an UltraMonthViewMulti calendar control. When the button is clicked, the calendar control opens perfectly aligned as expected.
Challange - The UltraTextEditor must support an F4 key press that effectively forces the click of the DropDownEditorButton thus opening the calendar. Here's some code...
Private Sub UltraTextEditor_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles UltraTextEditor.KeyDown If e.KeyValue = System.Windows.Forms.Keys.F4 Then 'Some how force the ButtonsRight(0) DropDownButton to fire End If End Sub
Question - How can I accomplish this? I would have thought that you could have simply done something like the following but it apparently doesn't exist.
ex: Me.UltraTextEditor.ButtonsRight(0).Click()
Any help would be greatly appreciated.
It figures, right after I post the question, I found the solution. For those of you who care, here's the code to make it work.
Private Sub UltraTextEditor_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles UltraTextEditor.KeyDown If e.KeyValue = System.Windows.Forms.Keys.F4 Then 'Some how force the ButtonsRight(0) DropDownButton to fire Dim oButton As Infragistics.Win.UltraWinEditors.DropDownEditorButton = Me.UltraTextEditor.ButtonsRight(0) oButton.DropDown() End If End Sub
This doesn't work for me.
It says I need to put my editor into EditState.
When I do an oButton.Editor.EnterEditState it requires a paramter of type EmbeddableUIElementBase, which the docs do not then elaborate on.
Any more clues?
[edit]
A method along the lines of the OP's "oButton.Click" would be insanely helpful.
It sounds to me like your control doesn't have focus when you are trying to drop it down. You probably just need to set focus to the UltraTextEditor.
Mike Saltzman"] It sounds to me like your control doesn't have focus when you are trying to drop it down. You probably just need to set focus to the UltraTextEditor.
I tried that - it just returns "False" and won't take focus. ("CanFocus" also returns false.)
This is with the situation I described in this post - so I tried setting focus to the tree, the tab control, AND the text edit - none of them took it. According to MS help for "CanFocus:"
In order for a control to receive input focus, the control must have a handle assigned to it, and the Visible and Enabled properties must both be set to true for both the control and all its parent controls, and the control must be a form or the control's outermost parent must be a form.
And all of these criteria fit the bill, so I don't know what's going on there.
I also tried invoking "EnterEditMode" on the textedit.Editor object, but it needed a handle to another UI object (Win.EmbeddableUIEditorBase, I believe, which hadsno entry in the help files) and at that point I figured the user can just click the button to drop it down, and moved on...
Are you saying that you're trying to set the focus on the UltraTextEditor programmatically as oppose to the user tabbing into or clicking on the control prior to pressing the target key?
Sorry about that, I don't know where I got that type name from. What you have here is correct.
Okay, THIS finally worked!
Dim cButton As Infragistics.Win.UltraWinEditors.EmbeddableEditorButtonBase = Nothing cButton = TryCast(Grid.ActiveCell.EditorResolved, Infragistics.Win.UltraWinEditors.EmbeddableEditorButtonBase) Dim ddb As Infragistics.Win.UltraWinEditors.DropDownEditorButton = TryCast(cButton.ButtonsRight(0), Infragistics.Win. UltraWinEditors.DropDownEditorButton) If ddb IsNot Nothing Then ddb.DropDown()
Now to set the input focus to the tree that's displayed inside the tab control that's displayed by the button's dropdown. THEN I'm home free...
Also doesn't show a dropdown:
If Not _Grid.ActiveCell.DroppedDown Then _Grid.PerformAction(UltraGridAction.EnterEditModeAndDropdown) End If
Erg - I finally got around to implementing this. The compiler's not letting me do the cast as described, and I can't find "EditorDropDownButtonBase" in the online help. Could you mean "EditorWithTextAndDropDownBase" or "EmbeddableEditorButtonBase"?
(Love those descriptive class names...)
FWIW, the EditorResolved is coming back as type Infragistics.Win.EditorWithText in the Immediate window.
[time passes]
It casts successfully as a Infragistics.Win.UltraWinEditors.EmbeddableEditorButtonBase but tells me when I tell it to ".DropDown" that "This editor does not support dropdowns."
So it's not the UltraTextEditor on the form that I need to use, and it's not whatever this EmbeddableEditorButtonBase is...
Help?
I mean - "Mikes" ;)