Как удалить выпадающий список после того, как предмет выбран - PullRequest
0 голосов
/ 10 февраля 2019

Я хочу уничтожить поле со списком сразу после того, как пользователь выберет элемент, который не является элементом по умолчанию («Пожалуйста, выберите параметр») с индексом 0.

Вот код:

private void btn_options_Click(object sender, EventArgs e)
    {
        Options_DropDown = new ComboBox();

        //Build a list
        var dataSource = new List<Options_Items>();            
        dataSource.Add(new Options_Items() { Commentmethod = "Please select an option." });
        dataSource.Add(new Options_Items() { Commentmethod = "Override selected file." });
        dataSource.Add(new Options_Items() { Commentmethod = "Create a copy of the selected file at selected location."});
        dataSource.Add(new Options_Items() { Commentmethod = "Copy the commented version to clipboard."});

        //Setup data binding
        Options_DropDown.DataSource = dataSource;
        Options_DropDown.DisplayMember = "Commentmethod";

        // make it readonly
        Options_DropDown.DropDownStyle = ComboBoxStyle.DropDownList;

        Options_DropDown.SetBounds(401, 290, 171, 23);

        if (Options_DropDown.SelectedIndex != 0) //this if is not working the way I want it to
        {
            Controls.Remove(Options_DropDown);
        }

        this.Controls.Add(Options_DropDown);
    }

И затем класс для добавления элементов

public class Options_Items
    {
        public string Commentmethod { get; set; }
    }

Дополнительная информация: я нажимаю кнопку, которая отображает поле со списком, после чего я выбираю элемент, и поле со списком удаляется.

1 Ответ

0 голосов
/ 10 февраля 2019

Я не уверен, какую технологию отображения вы используете, но и классы графических интерфейсов WinForms и WPF / UWP имеют возможность установить любой элемент на Невидимый, отключить их или даже полностью удалить его из пользовательского интерфейса.Однако при удалении вы должны быть очень осторожны, чтобы сохранить ссылку, так как в противном случае она может получить сборщик мусора.Отключить или Невидимый звучит немного лучше.

Однако сама идея удаления элемента пользовательского интерфейса после выделения (или вообще) странна, если не сказать больше.Я знаю только программы-шутки, которые когда-либо делали это.

Что если пользователь захочет позже исправить свой ввод?Обычно, если вы не хотите, чтобы что-то показывалось больше, вы помещаете это в другую регистрационную карточку / страницу / другим способом, чтобы разделить пользовательский интерфейс на отдельные сегменты.Затем пользователь может не видеть его больше, но также может вернуться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...