2012-04-23 5 views
0

Я пишу программу с тремя вкладками.Заполнение текстовых полей с несколькими ComboBoxes

На первой вкладке пользователь вводит информацию об учетной записи клиента, которая затем отправляется на combobox на второй и третьей вкладках под названием clients. На второй вкладке пользователь вводит информацию об акциях или паевых инвестиционных фондах. Информация о запасах поступает на фондовый combobox на третьей вкладке, а информация о взаимном фонде поступает в взаимный фонд combobox на третьей вкладке.

Проблема, с которой я сталкиваюсь, состоит в том, что я могу заполнить только одно поле информации и заполнить textboxes выбранным элементом в combobox. Например, если я введу информацию об учетной записи клиента, а затем выберите эту опцию в combobox - она ​​заполнит textboxes с этой информацией. Но, если бы я попытался выбрать вариант из фонда или взаимного фонда combobox, то соответствующий textboxes не заполнит информацией. Я понятия не имею, почему выбор из первого combobox является единственным, который заполнит textboxes.

Вот код для заполнения textboxes:

private void cboClientsTab3_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     CustomerAccount custAccount = account[cboClientsTab3.SelectedIndex] as CustomerAccount; 
     if (custAccount != null) 
     { 
      txtAccountNumberTab3.Text = custAccount.GetAccountNumber(); 
      txtCustomerNameTab3.Text = custAccount.GetCustomerName(); 
      txtCustomerAddressTab3.Text = custAccount.GetCustomerAddress(); 
      txtCustomerPhoneNumberTab3.Text = custAccount.GetCustomerPhoneNo(); 
     } 

    } 

    private void cboStocksTab3_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     Stock aStock = account[cboStocksTab3.SelectedIndex] as Stock; 
     if (aStock != null) 
     { 
      txtStockIDTab3.Text = aStock.GetInvestmentID(); 
      txtStockNameTab3.Text = aStock.GetInvestmentName(); 
      txtStockSymbolTab3.Text = aStock.GetInvestmentSymbol(); 
      txtStockSharesTab3.Text = aStock.GetInvestmentShare().ToString(); 
      txtStockPriceTab3.Text = aStock.GetStockPrice().ToString(); 
     } 

    } 

    private void cboMutualFundsTab3_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     MutualFund aMutualFund = account[cboMutualFundsTab3.SelectedIndex] as MutualFund; 
     if (aMutualFund!=null) 
     { 
      txtMutualIDTab3.Text=aMutualFund.GetInvestmentID(); 
      txtMutualNameTab3.Text=aMutualFund.GetInvestmentName(); 
      txtMutualSymbolTab3.Text=aMutualFund.GetInvestmentSymbol(); 
      txtMutualSharesTab3.Text=aMutualFund.GetInvestmentShare().ToString(); 
      txtNAVTab3.Text=aMutualFund.GetNAV().ToString(); 
     } 
    } 
+0

С кодом немного сложно сказать. Я бы порекомендовал вам перейти с помощью отладчика VS, чтобы узнать, где возникает проблема. – McGarnagle

+0

На самом деле это не говорит мне ничего, когда я нахожу это. Я не понимаю, почему будет только заполнять текстовые поля из первого использованного combobox. – user1345553

+0

Итак, когда вы помещаете точку останова в * cboStocksTab3_SelectedIndexChanged * и выбираете элемент из поля со списком, срабатывает ли точка останова? Is * aStock * null? Являются * GetInvestmentID() * и т. Д., Возвращающие пустые строки/null? Придется сузить его. – McGarnagle

ответ

0

Per нашего чата выше, проблема, кажется, что cboStocksTab3 и cboMutualFundsTab3 подключены к неправильному обработчика событий (а именно cboClientsTab3_SelectedIndexChanged). Проверьте, где добавлено ваше событие SelectedIndexChanged и измените его на правильные. Это должно решить вашу проблему.

+0

Что значит проверить, где он добавляется к элементам. Три события SelectedIndexChanged только в форме моей программы. Как они должны быть подключены? – user1345553

+0

Ну, событие должно быть где-то подключено, возможно, в другом месте в коде формы. Это зависит, хотя, я думаю: вы используете WPF или классические Windows Forms? – McGarnagle

+0

Это приложение Windows Form в VisualStudio 2010 – user1345553

Смежные вопросы