Мерцание пользовательского интерфейса при выборе свойства в элементе управления сеткой свойств - PullRequest
0 голосов
/ 17 мая 2018

У меня есть сетка свойств и поле со списком. Основываясь на значении поля со списком, я изменяю propertygrid.SelectedItem и обновляю сетку свойств.Проблема в том, что всякий раз, когда я выбираю значение для редактирования, весь экран начинает мигать, как при перерисовке или перерисовке.Это происходит только тогда, когда я выбираю свойство в сетке свойств, оно исчезает, когда я перехожу на другой экран и возвращаюсь.Я не написал никаких функций перерисовки для событий щелчка.

[edit1] Я добавил фрагмент кода из поля со списком изменение выбранного элемента

if (this.comboBoxHomerSelectSettings.SelectedItem.ToString() == "AppSettings")
            {
                this.comboBoxHomerSublist.Visible = false;
                this.propertyGridEditSettings.SelectedObject = Settings.SingleInstance.SettingsValues.AppSettings;
            }
            else if (this.comboBoxHomerSelectSettings.SelectedItem.ToString() == "WaferSpecificSettings")
            {
                this.comboBoxHomerSublist.Visible = true;
                this.comboBoxHomerSublist.Items.Clear();
                for (int i = 0; i < Settings.SingleInstance.SettingsValues.WaferSpeicificSettingsList.WaferSpeicificInformationList.Count;i++ )
                {
                    this.comboBoxHomerSublist.Items.Add(Settings.SingleInstance.SettingsValues.WaferSpeicificSettingsList.WaferSpeicificInformationList.ElementAt(i));
                }
                this.comboBoxHomerSublist.SelectedIndex = 0;
                this.propertyGridEditSettings.SelectedObject = this.comboBoxHomerSublist.SelectedItem;
            }
            else if (this.comboBoxHomerSelectSettings.SelectedItem.ToString() == "BinColorMapping")
            {
                this.comboBoxHomerSublist.Visible = true;
                this.comboBoxHomerSublist.Items.Clear();
                for (int i = 0; i < Settings.SingleInstance.SettingsValues.BinColorInfoList.BinColorInformationList.Count; i++)
                {
                    this.comboBoxHomerSublist.Items.Add(Settings.SingleInstance.SettingsValues.BinColorInfoList.BinColorInformationList.ElementAt(i));
                }
                this.comboBoxHomerSublist.SelectedIndex = 0;
                this.propertyGridEditSettings.SelectedObject = this.comboBoxHomerSublist.SelectedItem;
            }
            else if (this.comboBoxHomerSelectSettings.SelectedItem.ToString() == "CommonSettings")
            {
                this.comboBoxHomerSublist.Visible = false;
                this.propertyGridEditSettings.SelectedObject = Settings.SingleInstance.SettingsValues.CommonSettings;
            }
            else if (this.comboBoxHomerSelectSettings.SelectedItem.ToString() == "DOETypeMapping")
            {
                this.comboBoxHomerSublist.Visible = true;
                this.comboBoxHomerSublist.Items.Clear();
                for (int i = 0; i < Settings.SingleInstance.SettingsValues.DOETypeMapingInfoList.DOETypeMapingInformationList.Count; i++)
                {
                    this.comboBoxHomerSublist.Items.Add(Settings.SingleInstance.SettingsValues.DOETypeMapingInfoList.DOETypeMapingInformationList.ElementAt(i));
                }
                this.comboBoxHomerSublist.SelectedIndex = 0;
                this.propertyGridEditSettings.SelectedObject = this.comboBoxHomerSublist.SelectedItem;
            }
            this.propertyGridEditSettings.Refresh();
...