2016-02-29 93 views
0

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

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

RadCheckedDropDownList with 2 selected values

图像中我的问题是如何改变显示的数值为“多”,而不是显示通过分离器分离的值时,多值selected.Preferably多应该只读不令牌。

+0

你是什么意思“将显示值更改为多个”? – Roman

+0

如果用户选择3个值,例如星期一,星期二,星期四。它不会显示“星期一;星期二;星期四”,而必须显示“多个”。 – KopMaverick

回答

2

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

然后,您可以使用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 
+0

它运行良好,是我需要的解决方案。 – KopMaverick