Настройка элемента по умолчанию в поле со списком - PullRequest
6 голосов
/ 03 декабря 2010

У меня есть функция для настройки элементов в выпадающем списке, и один элемент должен быть установлен по умолчанию, как

- ВЫБРАТЬ СПИСОК -

 public void SetOperationDropDown()

    {

        int? cbSelectedValue = null;
        if(cmbOperations.Items.Count == 0)
        {
            //This is for adding four operations with value in operation dropdown  
            cmbOperations.Items.Insert(0, "PrimaryKeyTables");
            cmbOperations.Items.Insert(1, "NonPrimaryKeyTables");
            cmbOperations.Items.Insert(2, "ForeignKeyTables");
            cmbOperations.Items.Insert(3, "NonForeignKeyTables");
            cmbOperations.Items.Insert(4, "UPPERCASEDTables");
            cmbOperations.Items.Insert(5, "lowercasedtables");
            //ByDefault the selected text in the cmbOperations will be -SELECT OPERATIONS-. 
            cmbOperations.Text = "-SELECT OPERATIONS-";
        }
        else
        {
            if(!string.IsNullOrEmpty("cmbOperations.SelectedValue"))
            {
                cbSelectedValue = Convert.ToInt32(cmbOperations.SelectedValue);
            }
        }
        //Load the combo box cmbOperations again 
        if(cbSelectedValue != null)
        {
            cmbOperations.SelectedValue = cbSelectedValue.ToString();
        }
    }

Может кто-нибудь предложить способ сделать это?

1 Ответ

14 голосов
/ 03 декабря 2010

Я переписал этот ответ, чтобы уточнить некоторые вещи.

Во-первых, текст «по умолчанию» также должен быть добавлен как комбинированный элемент. Использование свойства combo.Text просто добавляет описательный текст в комбинированный список, который «теряется», когда пользователь впервые что-то делает с элементом управления. Если вы хотите, чтобы в комбо-коде всегда был текст «по умолчанию», вы должны добавить его в качестве элемента комбинированного списка.

С помощью предоставленного вами кода просто измените

cmbOperations.Text = "-SELECT OPERATIONS-";
до
cmbOperations.Items.Insert(0, "-SELECT OPERATIONS-");

Обратите внимание, что таким образом вы добавляете элемент "-SELECT OPERANDS-" к 0-й позиции (сначала прочитайте) в списке. Также убедитесь, что все последующие элементы увеличены на 1, поскольку теперь они перемещены на одну позицию вниз в списке.

Наконец, поставьте строку

cboOperations.SelectedIndex = 0;
в конце кода. Поступая так, вы сообщаете combobox, чтобы изначально отображать элемент «по умолчанию» при загрузке формы (или элемента управления).

Еще одна вещь. Я не совсем уверен, чего вы хотите достичь с помощью кода помимо установки комбо-элементов, но если вы хотите проверить, какой пользователь выбрал, используйте свойство cboOperations.SelectedIndex, которое содержит текущий выбранный элемент в комбо. Вы можете добавить простой

if(cboOperations.SelectedIndex == someIntValue){...}
Остальное - логика вашей программы;)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...