Относится к выбранным, обменивается из выпадающего списка - PullRequest
0 голосов
/ 22 декабря 2009

У меня есть выпадающий список, в котором я загружаю выпадающий список, используя следующий код.

public void LoadCustomer1(ComboBox pCmbCustomer)
        {
            obj._dtInputParameter.Clear();
            obj.AddInputParameter("@Prm_OpFlag", "S", "String", 1);
            //obj.strSPName = "prc_CUST_Details";
            obj.strSPName = "EditCustCombo";
            DataSet ds = obj.SqlExecuteFill();
            pCmbCustomer.DataSource = ds.Tables[0];
            pCmbCustomer.DisplayMember = "CustomerId";
            pCmbCustomer.ValueMember = "CustomerId";
            pCmbCustomer.Text = "--- Select Customer Id ---";
            pCmbCustomer.SelectedIndex = 0;

        }

Проблема в pCmbCustomer.DataSource = ds.Tables [0]; выбранное индексируемое событие выпадающего списка работает. Как можно избежать выбранного индексируемого события при связывании выпадающего списка? Кто-нибудь может помочь?

Ответы [ 3 ]

1 голос
/ 22 декабря 2009

Избегайте обработки selectedIndexChangedEvent настолько, насколько это возможно.

Избегайте использования pCmbCustomer.Text = "--- Select Customer Id ---"; операторов этого типа. То есть не устанавливайте текст явно.

Сделать текст "--- Select Customer Id ---" участником списка.

Тогда используйте этот оператор pCmbCustomer.SelectedIndex = 0,2,3...,n;, когда вам нужно.

1 голос
/ 24 декабря 2009

Я бы использовал SelectionChangeCommitted вместо SelectedIndexChange, если это возможно.

MSDN: http://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.selectionchangecommitted.aspx

"SelectionChangeCommitted вызывается только тогда, когда пользователь изменяет выбор поля со списком. Не используйте SelectedIndexChanged или SelectedValueChanged для захвата пользовательских изменений, , поскольку эти события также возникают, когда выбор изменяется программно ."

1 голос
/ 22 декабря 2009

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

Таким образом, вместо того, чтобы прикреплять событие непосредственно в пользовательском элементе управления, присоедините его в своем коде позади либо в конце LoadCustomer1, либо вне его после вызова LoadCustomer1.

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