/// <summary>
        /// Opens a connection to <see cref="_connection"/>.
        /// </summary>
        public async Task Connect()
        {
            // Set the top and height of the connection contain panel appropriately depending on if we're auto-hiding the toolbar
            if (AutoHideToolbar && !_connectionContainerPanelSizeSet)
            {
                _connectionContainerPanel.Top     = 5;
                _connectionContainerPanel.Height += 31;
            }

            _urlPanel.Text = String.Format(
                @"<div style=""background-color: #FFFFFF; font-family: {2}; font-size: {3}pt; height: {4}px; color: #9999BF;"">{0}://<font color=""black"">{1}</font></div>",
                ConnectionFactory.GetProtocol(_connection).ProtocolPrefix, _connection.Host, urlTextBox.Font.FontFamily.GetName(0), urlTextBox.Font.SizeInPoints,
                _urlPanel.Height);

            _urlPanelContainer.Visible = true;
            urlTextBox.Visible         = false;

            _urlPanel.PerformLayout();

            // Initialize the UI elements
            _connectionContainerPanelSizeSet = true;
            _connectionForm = ConnectionFactory.CreateConnectionForm(_connection, _connectionContainerPanel);
            _connectionForm.ConnectionLost += _connectionForm_ConnectionLost;
            _connectionForm.Connected      += _connectionForm_Connected;
            Icon = ConnectionFactory.GetProtocol(_connection).ProtocolIcon;
            _iconPictureBox.Image = new Icon(Icon, 16, 16).ToBitmap();
            Text = _connection.DisplayName;

            _suppressOmniBar = true;
            urlTextBox.Text  = ConnectionFactory.GetProtocol(_connection).ProtocolPrefix + "://" + _connection.Host;
            _suppressOmniBar = false;

            try
            {
                _connectionForm.Connect();
            }

            catch (Exception)
            {
                Close();
                return;
            }

            await ParentTabs.RegisterConnection(this, _connection);

            HideToolbar();
        }