修改 RadCheckedDropDownList 的文本
Modifying the text of RadCheckedDropDownList
我正在我的 Winform 应用程序的面板内动态添加和填充 RadCheckedDropDownList。
RadCheckedDropDownList 的当前功能是,如果我 select 列表中有多个值,这些值将列在由分隔符分隔的组合框中。如下图所示
我的问题是如何将显示的值更改为 "Multiple",而不是在多个值 selected.Preferably 时显示由分隔符分隔的值 selected.Preferably 倍数应该在没有标记的情况下只读。
为此,您可以在控件的可编辑部分添加一个新元素,该元素将负责显示您的文本而不会影响控件功能。
然后你可以使用 ItemCheckedChanged 事件,当一个项目被选中时,它会被触发,在这里你可以看到当前有多少项目被选中,如果超过一个,显示带有文本的元素并隐藏标记.
Protected Overrides Sub OnLoad(e As EventArgs)
MyBase.OnLoad(e)
AddCheckedDropDownList()
AddHandler radCheckedDropDownList1.ItemCheckedChanged, AddressOf radCheckedDropDownList1_ItemCheckedChanged
radCheckedDropDownList1.CheckedDropDownListElement.AutoCompleteEditableAreaElement.Children.Add(New LightVisualElement() With { _
Key .Text = "Multiple" _
})
AdjustControlText()
End Sub
Private Sub radCheckedDropDownList1_ItemCheckedChanged(sender As Object, e As RadCheckedListDataItemEventArgs)
AdjustControlText()
End Sub
Private Sub AdjustControlText()
If radCheckedDropDownList1.CheckedItems.Count > 1 Then
radCheckedDropDownList1.CheckedDropDownListElement.AutoCompleteEditableAreaElement.AutoCompleteTextBox.ViewElement.Visibility = Telerik.WinControls.ElementVisibility.Collapsed
DirectCast(radCheckedDropDownList1.CheckedDropDownListElement.AutoCompleteEditableAreaElement.Children(1), LightVisualElement).DrawText = True
Else
radCheckedDropDownList1.CheckedDropDownListElement.AutoCompleteEditableAreaElement.AutoCompleteTextBox.ViewElement.Visibility = Telerik.WinControls.ElementVisibility.Visible
DirectCast(radCheckedDropDownList1.CheckedDropDownListElement.AutoCompleteEditableAreaElement.Children(1), LightVisualElement).DrawText = False
End If
End Sub
我正在我的 Winform 应用程序的面板内动态添加和填充 RadCheckedDropDownList。
RadCheckedDropDownList 的当前功能是,如果我 select 列表中有多个值,这些值将列在由分隔符分隔的组合框中。如下图所示
我的问题是如何将显示的值更改为 "Multiple",而不是在多个值 selected.Preferably 时显示由分隔符分隔的值 selected.Preferably 倍数应该在没有标记的情况下只读。
为此,您可以在控件的可编辑部分添加一个新元素,该元素将负责显示您的文本而不会影响控件功能。
然后你可以使用 ItemCheckedChanged 事件,当一个项目被选中时,它会被触发,在这里你可以看到当前有多少项目被选中,如果超过一个,显示带有文本的元素并隐藏标记.
Protected Overrides Sub OnLoad(e As EventArgs)
MyBase.OnLoad(e)
AddCheckedDropDownList()
AddHandler radCheckedDropDownList1.ItemCheckedChanged, AddressOf radCheckedDropDownList1_ItemCheckedChanged
radCheckedDropDownList1.CheckedDropDownListElement.AutoCompleteEditableAreaElement.Children.Add(New LightVisualElement() With { _
Key .Text = "Multiple" _
})
AdjustControlText()
End Sub
Private Sub radCheckedDropDownList1_ItemCheckedChanged(sender As Object, e As RadCheckedListDataItemEventArgs)
AdjustControlText()
End Sub
Private Sub AdjustControlText()
If radCheckedDropDownList1.CheckedItems.Count > 1 Then
radCheckedDropDownList1.CheckedDropDownListElement.AutoCompleteEditableAreaElement.AutoCompleteTextBox.ViewElement.Visibility = Telerik.WinControls.ElementVisibility.Collapsed
DirectCast(radCheckedDropDownList1.CheckedDropDownListElement.AutoCompleteEditableAreaElement.Children(1), LightVisualElement).DrawText = True
Else
radCheckedDropDownList1.CheckedDropDownListElement.AutoCompleteEditableAreaElement.AutoCompleteTextBox.ViewElement.Visibility = Telerik.WinControls.ElementVisibility.Visible
DirectCast(radCheckedDropDownList1.CheckedDropDownListElement.AutoCompleteEditableAreaElement.Children(1), LightVisualElement).DrawText = False
End If
End Sub