Hi,
I have a CommandBar that contains multiple CommandBarDropDownLists. When they get shown, the tooltip is supposed to be the selected item's text. What actually happens though is that the tooltip is basically always the text of the first item in the list. I've tried several things, to no avail. Some of the things I've tried include overriding the VisualItemFormatting event of the CommandBarDropDownLists, working with the TextChanged event to change the tooltip, and trying to change the tooltip in the SelectedIndexChanged event that is also being overriden for other purposes as well. None of these has changed the behaviour described above.
Thank you in advance for your time! I know this is probably simple and I am just missing something, but I just can't figure it out.
Best regards,
Matei
Hi, Matei,
Indeed, if you change the DropDownStyle to DropDownList, the editable area wouldn't contain a text box and the tool tip should be extracted from the RadDropDownListEditableAreaElement. An alternative approach is to extract the text from the SelectedItem.
Sub New()
InitializeComponent()
Me.CommandBarDropDownList1.SelectedIndex = 2
Me.CommandBarDropDownList2.SelectedIndex = 1
Me.CommandBarDropDownList1.AutoToolTip = True
Me.CommandBarDropDownList2.AutoToolTip = True
Me.CommandBarDropDownList1.DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDownList
AddHandler Me.RadCommandBar1.ToolTipTextNeeded, AddressOf CommandBar_ToolTipTextNeeded
End Sub
Private Sub CommandBar_ToolTipTextNeeded(sender As Object, e As Telerik.WinControls.ToolTipTextNeededEventArgs)
Dim textBox As RadTextBoxItem = TryCast(sender, RadTextBoxItem)
If textBox IsNot Nothing Then
e.ToolTipText = textBox.Text
End If
Dim editableArea As RadDropDownListEditableAreaElement = TryCast(sender, RadDropDownListEditableAreaElement)
If editableArea IsNot Nothing Then
Dim dropDown As RadDropDownListElement = editableArea.FindAncestor(Of RadDropDownListElement)()
If dropDown IsNot Nothing AndAlso dropDown.SelectedItem IsNot Nothing Then
e.ToolTipText = dropDown.SelectedItem.Text
End If
End If
End Sub
Feel free to use this approach which suits your requirements best. We will consider both of the DropDownStyle modes when addressing this item.
Regards,
Dess | Tech Support Engineer, Sr.
Progress Telerik
Hi Dess,
Thanks for the quick reply once again!
Your solution did work, however I wanted to mention that the way you present it only works if the DropDownStyle of the DropDownList is set to DropDown. We have to use DropDownStyle.DropDownList to not allow users to edit, so I had to cast the sending object to a RadDropDownListEditableAreaElement instead, and used its AccessibleDescription property to set the text (can't see any code snippet insert so I'll just type it out):
Private Sub CommandBar_ToolTipTextNeeded(sender as Object, e as TOolTipTextNeededEventArgs)
Dim editableElement = TryCast(sender, RadDropDownListEditableAreaElement)
If editableElement IsNot Nothing Then
e.ToolTipText = editableElement.AccessibleDescription
End If
End Sub
You could use other properties to get the tooltip information/text from I guess, but this one works great for our purposes.
Thank you once again! Have a nice day!
Best regards,
Matei
Sub New()
InitializeComponent()
Me.CommandBarDropDownList1.SelectedIndex = 2
Me.CommandBarDropDownList2.SelectedIndex = 1
Me.CommandBarDropDownList1.AutoToolTip = True
Me.CommandBarDropDownList2.AutoToolTip = True
End Sub
I have logged it in our feedback portal by creating a public thread on your behalf. You can track its progress, subscribe for status changes and add your comments on the following link - feedback item.
I have also updated your Telerik points.
Currently, the possible solution that I can suggest is to handle the RadCommandBar.ToolTipTextNeeded event and specify the exact tool tip text to be displayed:
Sub New()
InitializeComponent()
Me.CommandBarDropDownList1.SelectedIndex = 2
Me.CommandBarDropDownList2.SelectedIndex = 1
Me.CommandBarDropDownList1.AutoToolTip = True
Me.CommandBarDropDownList2.AutoToolTip = True
AddHandler Me.RadCommandBar1.ToolTipTextNeeded, AddressOf CommandBar_ToolTipTextNeeded
End Sub
Private Sub CommandBar_ToolTipTextNeeded(sender As Object, e As Telerik.WinControls.ToolTipTextNeededEventArgs)
Dim textBox As RadTextBoxItem = TryCast(sender, RadTextBoxItem)
If textBox IsNot Nothing Then
e.ToolTipText = textBox.Text
End If
End Sub
I hope this information helps. If you need any further assistance please don't hesitate to contact me.
Regards,
Dess | Tech Support Engineer, Sr.
Progress Telerik