protected override void OnKeyDown(KeyEventArgs e)
        {
            BaseDropDownListEditorElement editorElement = this.EditorElement as BaseDropDownListEditorElement;

            this.selectionStart = editorElement.SelectionStart;

            TreeNodeElement nodeElement = this.OwnerElement as TreeNodeElement;

            if (nodeElement != null)
            {
                if (e.KeyCode == Keys.Enter && e.Modifiers != Keys.Control)
                {
                    nodeElement.TreeViewElement.EndEdit();
                }
                else if (e.KeyCode == Keys.Escape)
                {
                    nodeElement.TreeViewElement.CancelEdit();
                    e.Handled = true;
                }
                else if (e.KeyCode == Keys.Left || e.KeyCode == Keys.Right)
                {
                    e.Handled = true;
                }
                else if (e.KeyCode == Keys.Down && e.Modifiers == Keys.Alt)
                {
                    ((RadDropDownListElement)this.EditorElement).ShowPopup();
                    e.Handled = true;
                }
            }
        }
        public override void Initialize(object owner, object value)
        {
            base.Initialize(owner, value);

            PropertyGridItemElement element = owner as PropertyGridItemElement;
            PropertyGridItem        item    = element.Data as PropertyGridItem;

            if (item == null)
            {
                return;
            }

            if (item.PropertyType.IsEnum)
            {
                BaseDropDownListEditorElement editorElement = this.editorElement as BaseDropDownListEditorElement;
                editorElement.ListElement.BindingContext = item.PropertyGridTableElement.BindingContext;
                editorElement.DataSource    = Enum.GetValues(item.PropertyType);
                editorElement.SelectedValue = item.Value;
            }
            else if (item.PropertyType == typeof(bool))
            {
                BaseDropDownListEditorElement editorElement = this.editorElement as BaseDropDownListEditorElement;
                editorElement.ListElement.BindingContext = item.PropertyGridTableElement.BindingContext;

                RadListDataItem trueItem  = new RadListDataItem(bool.TrueString, true);
                RadListDataItem falseItem = new RadListDataItem(bool.FalseString, false);
                editorElement.Items.Add(trueItem);
                editorElement.Items.Add(falseItem);

                editorElement.SelectedValue = item.Value;
            }
        }
        protected override void OnKeyDown(KeyEventArgs e)
        {
            BaseDropDownListEditorElement editorElement = this.EditorElement as BaseDropDownListEditorElement;

            this.selectionStart = editorElement.SelectionStart;

            PropertyGridItemElement visualItem = this.OwnerElement as PropertyGridItemElement;

            if (visualItem != null)
            {
                if (e.KeyCode == Keys.Enter && e.Modifiers != Keys.Control)
                {
                    visualItem.PropertyTableElement.EndEdit();
                }
                else if (e.KeyCode == Keys.Escape)
                {
                    visualItem.PropertyTableElement.CancelEdit();
                    e.Handled = true;
                }
                else if (e.KeyCode == Keys.Left || e.KeyCode == Keys.Right)
                {
                    e.Handled = true;
                }
                else if (e.KeyCode == Keys.Down && e.Modifiers == Keys.Alt)
                {
                    ((RadDropDownListElement)this.EditorElement).ShowPopup();
                    e.Handled = true;
                }
            }
        }
        public override bool EndEdit()
        {
            BaseDropDownListEditorElement editorElement = this.EditorElement as BaseDropDownListEditorElement;

            editorElement.DoubleClick -= new EventHandler(this.editorElement_DoubleClick);
            editorElement.MouseEnter  -= new EventHandler(this.editorElement_MouseMove);
            return(base.EndEdit());
        }
        private void DropDownListElement_HandleKeyDown(object sender, KeyEventArgs e)
        {
            BaseDropDownListEditorElement editorElement = this.EditorElement as BaseDropDownListEditorElement;

            if (editorElement == null || !editorElement.IsInValidState(true))
            {
                return;
            }
            this.OnKeyDown(e);
        }
        public override void BeginEdit()
        {
            base.BeginEdit();
            BaseDropDownListEditorElement editorElement = (BaseDropDownListEditorElement)this.EditorElement;

            editorElement.TextBox.TextBoxItem.TextChanged             += new EventHandler(this.TextBoxItem_TextChanged);
            editorElement.TextBox.TextBoxItem.HostedControl.LostFocus += new EventHandler(this.HostedControl_LostFocus);
            editorElement.RadPropertyChanged    += new RadPropertyChangedEventHandler(this.DropDownListElement_RadPropertyChanged);
            editorElement.SelectedIndexChanging += new Telerik.WinControls.UI.Data.PositionChangingEventHandler(this.DropDownListElement_SelectedIndexChanging);
            editorElement.SelectedIndexChanged  += new Telerik.WinControls.UI.Data.PositionChangedEventHandler(this.DropDownListElement_SelectedIndexChanged);
            editorElement.HandleKeyDown         += new KeyEventHandler(this.DropDownListElement_HandleKeyDown);
            editorElement.SelectionStart         = 0;
            editorElement.SelectionLength        = editorElement.Text.Length;
            editorElement.Focus();
        }
        private void TextBoxItem_TextChanged(object sender, EventArgs e)
        {
            BaseDropDownListEditorElement editorElement = (BaseDropDownListEditorElement)this.EditorElement;

            if (editorElement.DropDownStyle != RadDropDownStyle.DropDown)
            {
                return;
            }
            string           text           = (sender as RadTextBoxItem).Text;
            StringComparison comparisonType = editorElement.CaseSensitive ? StringComparison.InvariantCulture : StringComparison.InvariantCultureIgnoreCase;

            foreach (RadListDataItem radListDataItem in editorElement.Items)
            {
                if (radListDataItem.Text.Equals(text, comparisonType))
                {
                    radListDataItem.Selected = true;
                    break;
                }
            }
        }
        public override bool EndEdit()
        {
            base.EndEdit();
            BaseDropDownListEditorElement editorElement = (BaseDropDownListEditorElement)this.EditorElement;

            if (editorElement.IsPopupOpen)
            {
                editorElement.ClosePopup();
            }
            editorElement.SelectedIndexChanging                       -= new Telerik.WinControls.UI.Data.PositionChangingEventHandler(this.DropDownListElement_SelectedIndexChanging);
            editorElement.SelectedIndexChanged                        -= new Telerik.WinControls.UI.Data.PositionChangedEventHandler(this.DropDownListElement_SelectedIndexChanged);
            editorElement.HandleKeyDown                               -= new KeyEventHandler(this.DropDownListElement_HandleKeyDown);
            editorElement.TextBox.TextBoxItem.TextChanged             -= new EventHandler(this.TextBoxItem_TextChanged);
            editorElement.TextBox.TextBoxItem.HostedControl.LostFocus -= new EventHandler(this.HostedControl_LostFocus);
            editorElement.RadPropertyChanged                          -= new RadPropertyChangedEventHandler(this.DropDownListElement_RadPropertyChanged);
            editorElement.DataSource = (object)null;
            editorElement.Items.Clear();
            editorElement.ListElement.BindingContext = (BindingContext)null;
            return(true);
        }
        protected virtual void OnEditorElementDoubleClick()
        {
            if (!this.LoopValuesOnDoubleClick)
            {
                return;
            }
            BaseDropDownListEditorElement editorElement = this.EditorElement as BaseDropDownListEditorElement;

            if (editorElement == null || editorElement.SelectedValue == null || editorElement.Items.Count == 0)
            {
                return;
            }
            if (editorElement.SelectedIndex < editorElement.Items.Count - 1)
            {
                ++editorElement.SelectedIndex;
            }
            else
            {
                editorElement.SelectedIndex = 0;
            }
        }
        public override void Initialize(object owner, object value)
        {
            base.Initialize(owner, value);
            PropertyGridItem data = (owner as PropertyGridItemElement).Data as PropertyGridItem;

            if (data == null)
            {
                return;
            }
            BaseDropDownListEditorElement editorElement = this.EditorElement as BaseDropDownListEditorElement;

            editorElement.ListElement.BindingContext = data.PropertyGridTableElement.BindingContext;
            editorElement.DropDownStyle = RadDropDownStyle.DropDownList;
            if (data.TypeConverter.GetStandardValuesSupported((ITypeDescriptorContext)data))
            {
                ICollection   standardValues = (ICollection)data.TypeConverter.GetStandardValues((ITypeDescriptorContext)data);
                List <string> stringList     = new List <string>();
                if (standardValues != null)
                {
                    foreach (object obj in (IEnumerable)standardValues)
                    {
                        stringList.Add(data.TypeConverter.ConvertToString(obj));
                    }
                }
                string str = data.TypeConverter.ConvertToString(data.Value);
                if (!data.TypeConverter.GetStandardValuesExclusive((ITypeDescriptorContext)data))
                {
                    editorElement.DropDownStyle = RadDropDownStyle.DropDown;
                    if (!string.IsNullOrEmpty(str) && !stringList.Contains(str))
                    {
                        stringList.Insert(0, str);
                    }
                }
                editorElement.DataSource    = (object)stringList;
                editorElement.SelectedValue = (object)str;
            }
            editorElement.DoubleClick += new EventHandler(this.editorElement_DoubleClick);
            editorElement.MouseMove   += new MouseEventHandler(this.editorElement_MouseMove);
        }
Example #11
0
        private void TextBoxItem_TextChanged(object sender, EventArgs e)
        {
            BaseDropDownListEditorElement dropDownListElement = (BaseDropDownListEditorElement)this.EditorElement;

            if (dropDownListElement.DropDownStyle != RadDropDownStyle.DropDown)
            {
                return;
            }

            RadTextBoxItem   textBox          = sender as RadTextBoxItem;
            string           text             = textBox.Text;
            StringComparison stringComparison = dropDownListElement.CaseSensitive ? StringComparison.InvariantCulture : StringComparison.InvariantCultureIgnoreCase;

            foreach (RadListDataItem item in dropDownListElement.Items)
            {
                if (item.Text.Equals(text, stringComparison))//ticket id 370361
                {
                    item.Selected = true;
                    break;
                }
            }
        }
        protected override void OnKeyDown(KeyEventArgs e)
        {
            BaseDropDownListEditorElement editorElement = this.EditorElement as BaseDropDownListEditorElement;

            this.selectionStart = editorElement.SelectionStart;
            PropertyGridItemElement ownerElement = this.OwnerElement as PropertyGridItemElement;

            if (ownerElement == null)
            {
                return;
            }
            if (e.KeyCode == Keys.Return && e.Modifiers != Keys.Control)
            {
                ownerElement.PropertyTableElement.EndEdit();
            }
            else if (e.KeyCode == Keys.Escape)
            {
                ownerElement.PropertyTableElement.CancelEdit();
                e.Handled = true;
            }
            else if (e.KeyCode == Keys.Left || e.KeyCode == Keys.Right)
            {
                if (editorElement.DropDownStyle != RadDropDownStyle.DropDownList)
                {
                    return;
                }
                e.Handled = true;
            }
            else
            {
                if (e.KeyCode != Keys.Down || e.Modifiers != Keys.Alt)
                {
                    return;
                }
                ((PopupEditorBaseElement)this.EditorElement).ShowPopup();
                e.Handled = true;
            }
        }