private void marketListView_ItemActivate(object sender, EventArgs e)
        {
            this.Cursor = Cursors.WaitCursor;

            try
            {
                ListViewItem selectedItem = marketListView.SelectedItems[0];

                switch (currentlyViewing)
                {
                case MarketSelectViewType.EXCHANGES:
                    selectedExchange = exchanges[selectedItem.Name];
                    contracts        = api.GetContractDictionary(selectedExchange);
                    currentlyViewing = MarketSelectViewType.CONTRACTS;
                    UpdateDisplay();
                    break;

                case MarketSelectViewType.CONTRACTS:
                    selectedContract = contracts[selectedItem.Name];
                    markets          = api.GetMarketDictionary(selectedContract);
                    currentlyViewing = MarketSelectViewType.MARKETS;
                    UpdateDisplay();
                    break;

                case MarketSelectViewType.MARKETS:
                    selectedMarket = markets[selectedItem.Name];

                    // Add to recents.
                    var item = new ListViewItem(selectedMarket.Description);
                    item.Name     = selectedMarket.Description;
                    item.ImageKey = "market";
                    recentListView.Items.Add(item);

                    DialogResult = DialogResult.OK;
                    this.Close();
                    break;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("EXCEPTION: " + ex.Message);
            }
            finally
            {
                this.Cursor = Cursors.Default;
            }
        }