修改RadCheckedDropDownList的文本

时间:2016-02-29 06:20:43

标签: vb.net winforms user-controls telerik

我在Winform应用程序的面板中动态添加和填充RadCheckedDropDownList。

RadCheckedDropDownList的当前功能是,如果我从列表中选择多个值,则值将在由分隔符分隔的组合框中列出。如下图所示

RadCheckedDropDownList with 2 selected values

我的问题是如何将显示的值更改为“多个”,而不是在选择多个值时显示由分隔符分隔的值。优选地,只有在没有令牌的情况下才能读取倍数。

1 个答案:

答案 0 :(得分:2)

为此,您可以在控件的可编辑部分添加一个新元素,该元素将负责显示您的文本而不会弄乱控件功能。

然后你可以使用ItemCheckedChanged事件,当事项被选中时会被触发,在这里你可以看到当前检查了多少项,如果有多个,则显示带有文本的元素并隐藏标记。 / p>

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