Временно скрыть элемент из Combobox

1

Мне было интересно, есть ли способ временно скрыть или удалить элемент из поля со списком, которое заполняется из базы данных?

У меня есть два комбинированных поля, которые заполняются одним и тем же столбцом (To и From Machine Number)

Вы действительно не можете подключить Motor1 к Motor1, и вам не нужно было заполнять все поле со списком с каждым выбором, я думал, что должен быть способ временно скрыть тот же самый выбор из второго combobox.

Пожалуйста, дайте мне знать, если вам нужна информация о том, как заполняются поля со списком (код и т.д.),

EDIT Вот код популяции для списков со списком:

void PopulateCreateView(CableID_CreateView CView)
{
    // Creates a new Model, and gets data from the Db.
    CModel = new CableID_Model();
    CModel.CNId = 1;
    Database_Facade.Operation_Switch(OPREAD);

    // Populates the form with data for the Plant Area Codes, Supplier Info and Major Equipment.
    foreach (PlantAreaCode_Model Model in PlantAreaCode_Controller.PList)
    {
        CView.cmbAreaCode.Items.Add(Model.AreaName);
        CView.lblDummy.Text = Model.AreaName;
        if (CView.lblDummy.Width > CView.cmbAreaCode.DropDownWidth)
        {
            // Sets the width +20 to allow for the scroll bar.
            CView.cmbAreaCode.DropDownWidth = CView.lblDummy.Width + 20;
        }
    }

    foreach (SupplierID_Model Model in SupplierID_Controller.SList)
    {
        if (Model.CondConfig != null) { CView.cmbXsec.Items.Add(Model.CondConfig); }
        if (Model.Insulation != null) 
        { 
            CView.cmbInsulation.Items.Add(Model.Insulation);
            CView.lblDummy.Text = Model.Insulation;
            if (CView.lblDummy.Width > CView.cmbInsulation.DropDownWidth)
            {
                // Sets the width +20 to allow for the scroll bar.
                CView.cmbInsulation.DropDownWidth = CView.lblDummy.Width + 20;
            }
        }
    }

    foreach (MajorEquipment_Model Model in MajorEquipment_Controller.MeList)
    {
        CView.cmbFromLoc.Items.Add(Model.EqipmentNumber);
        CView.cmbToLoc.Items.Add(Model.EqipmentNumber);
    }
}

Вот код для MySQL Query:

public void GetCableId(CableID_Model CModel)
{
    DbConnect();

    try
    {
        MajorEquipment_Controller.MeList = new List<MajorEquipment_Model>();
        mySqlCommand = mySqlConnect.CreateCommand();
        mySqlCommand.CommandText = "SELECT * FROM MajorEquipment;";
        mySqlReader = mySqlCommand.ExecuteReader();

        while (mySqlReader.Read())
            {
                MajorEquipment_Controller.MeList.Add(new MajorEquipment_Model
                {
                    EqipmentNumber = Convert.ToString(mySqlReader["EquipmentNumber"])
                });
            }
            mySqlReader.Close();
            mySqlCommand.ExecuteNonQuery();
    }
    catch (MySqlException e) { MessageBox.Show(e.Message); }
    finally
    {
        if (mySqlConnect != null)
        {
            mySqlConnect.Close();
        }
    }
}
Теги:
combobox

2 ответа

1

К сожалению, нет простого способа сохранить элемент ListBox/ComboBox скрытым.

Что вы можете сделать, это упростить логику, которую вы используете для загрузки элемента в Список. Поскольку оба ComboBox являются списком машин, которые связаны друг с другом


Чтобы сохранить скрытый элемент, вам нужно создать свой собственный элемент управления, который отображает только видимый элемент из коллекции.

0

Решение псевдокода было бы

On DropDownListChange
   Get Selected Item
   for all other drop down lists 
       restore items from backup
       if selected value is not default
          remove current item from list box

Ещё вопросы

Сообщество Overcoder
Наверх
Меню