Hi,
I'm having difficulty working out how to set the colour of the items in a non-databound list, when the user types in text to bring up the autocomplete suggest mode.
I've set the colour of the ForeColor property in the items according to a business object that is set to the Value property in each item.
When the user hits the drop down arrow, the list populates with red and black items. However when the user types in 'L' and the list displays, I'm trying to get it to display the same black/red colours but it seems the items in the AutoCompleteSuggest.DropDownList.Items do not have their Value/Tag properties set from the original items.
Can you suggest a work around for this?
My experience with .Net is 7 years. My experience with Rad is about 1 month.
OS version and applied service packs
I'm having difficulty working out how to set the colour of the items in a non-databound list, when the user types in text to bring up the autocomplete suggest mode.
I've set the colour of the ForeColor property in the items according to a business object that is set to the Value property in each item.
When the user hits the drop down arrow, the list populates with red and black items. However when the user types in 'L' and the list displays, I'm trying to get it to display the same black/red colours but it seems the items in the AutoCompleteSuggest.DropDownList.Items do not have their Value/Tag properties set from the original items.
Can you suggest a work around for this?
My experience with .Net is 7 years. My experience with Rad is about 1 month.
OS version and applied service packs
Microsoft Windows Server 2003, Standard Edition, Service Pack 2
- Regional and language settings, if different from En-US
English (Australia)
- .NET version (.NET2, .NET3, .NET3.5)
.NET 4.0.30319 SP1Rel, Visual Studio 2010 Version 10.0.40219.1 SP1Rel
- Exact version of the Telerik product
Runtime Version v2.0.50727, Version 2011.3.11.1116
Thanks,
Clive
Imports Telerik.WinControls.UI Public Class Form10 Inherits System.Windows.Forms.Form 'Form overrides dispose to clean up the component list. <System.Diagnostics.DebuggerNonUserCode()> _ Protected Overrides Sub Dispose(ByVal disposing As Boolean) Try If disposing AndAlso components IsNot Nothing Then components.Dispose() End If Finally MyBase.Dispose(disposing) End Try End Sub 'Required by the Windows Form Designer Private components As System.ComponentModel.IContainer 'NOTE: The following procedure is required by the Windows Form Designer 'It can be modified using the Windows Form Designer. 'Do not modify it using the code editor. <System.Diagnostics.DebuggerStepThrough()> _ Private Sub InitializeComponent() Dim RadListDataItem1 As Telerik.WinControls.UI.RadListDataItem = New Telerik.WinControls.UI.RadListDataItem() Dim RadListDataItem2 As Telerik.WinControls.UI.RadListDataItem = New Telerik.WinControls.UI.RadListDataItem() Dim RadListDataItem3 As Telerik.WinControls.UI.RadListDataItem = New Telerik.WinControls.UI.RadListDataItem() Dim RadListDataItem4 As Telerik.WinControls.UI.RadListDataItem = New Telerik.WinControls.UI.RadListDataItem() Dim RadListDataItem5 As Telerik.WinControls.UI.RadListDataItem = New Telerik.WinControls.UI.RadListDataItem() Me.RadDropDownList1 = New Telerik.WinControls.UI.RadDropDownList() Me.CheckBox1 = New System.Windows.Forms.CheckBox() CType(Me.RadDropDownList1, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' 'RadDropDownList1 ' Me.RadDropDownList1.DropDownAnimationEnabled = True RadListDataItem1.Text = "ListItem 1" RadListDataItem1.Value = 1 RadListDataItem1.Tag = 1 RadListDataItem1.TextWrap = True RadListDataItem2.Text = "ListItem 2" RadListDataItem2.Value = 2 RadListDataItem2.Tag = 2 RadListDataItem2.TextWrap = True RadListDataItem3.Text = "ListItem 3" RadListDataItem3.Value = 3 RadListDataItem3.Tag = 3 RadListDataItem3.TextWrap = True RadListDataItem4.Text = "ListItem 4" RadListDataItem4.Value = 4 RadListDataItem4.Tag = 4 RadListDataItem4.TextWrap = True RadListDataItem5.Text = "ListItem 5" RadListDataItem5.Value = 5 RadListDataItem5.Tag = 5 RadListDataItem5.TextWrap = True Me.RadDropDownList1.Items.Add(RadListDataItem1) Me.RadDropDownList1.Items.Add(RadListDataItem2) Me.RadDropDownList1.Items.Add(RadListDataItem3) Me.RadDropDownList1.Items.Add(RadListDataItem4) Me.RadDropDownList1.Items.Add(RadListDataItem5) Me.RadDropDownList1.Location = New System.Drawing.Point(65, 40) Me.RadDropDownList1.Name = "RadDropDownList1" Me.RadDropDownList1.ShowImageInEditorArea = True Me.RadDropDownList1.Size = New System.Drawing.Size(106, 20) Me.RadDropDownList1.TabIndex = 0 ' 'CheckBox1 ' Me.CheckBox1.AutoSize = True Me.CheckBox1.Location = New System.Drawing.Point(65, 83) Me.CheckBox1.Name = "CheckBox1" Me.CheckBox1.Size = New System.Drawing.Size(81, 17) Me.CheckBox1.TabIndex = 1 Me.CheckBox1.Text = "CheckBox1" Me.CheckBox1.UseVisualStyleBackColor = True ' 'Form10 ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.ClientSize = New System.Drawing.Size(292, 273) Me.Controls.Add(Me.CheckBox1) Me.Controls.Add(Me.RadDropDownList1) Me.Name = "Form10" Me.Text = "Form10" CType(Me.RadDropDownList1, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) Me.PerformLayout() End Sub Friend WithEvents RadDropDownList1 As Telerik.WinControls.UI.RadDropDownList Private Sub Form10_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load For Each item In RadDropDownList1.Items item.ForeColor = If(CInt(item.Value) Mod 2 = 0, Color.Red, Color.Black) Next RadDropDownList1.AutoCompleteMode = AutoCompleteMode.SuggestAppend AddHandler RadDropDownList1.DropDownListElement.AutoCompleteSuggest.DropDownList.PopupOpening, Sub() If Not CheckBox1.Checked Then Return For Each item In RadDropDownList1.DropDownListElement.AutoCompleteSuggest.DropDownList.Items ' can't think of a way to get the value from the original list If item.Value IsNot Nothing Then item.ForeColor = If(CInt(item.Value) Mod 2 = 0, Color.Blue, Color.Green) ElseIf item.Tag IsNot Nothing Then item.ForeColor = If(CInt(item.Tag) Mod 2 = 0, Color.Blue, Color.Green) Else item.ForeColor = Color.Orange End If Next End Sub AddHandler RadDropDownList1.DropDownListElement.AutoCompleteSuggest.DropDownList.ListElement.VisualItemFormatting, Sub(sender1 As Object, ee As VisualItemFormattingEventArgs) If Not CheckBox1.Checked Then ' can't find any way to get the RadDataListItem to find out the business rule to change the colour ee.VisualItem.ForeColor = Color.Brown End If End Sub End Sub End Class