Hola espero me puedan ayudar a solucionar mi problema que ya no doi una, trate de heredar del de mi clase principal y no logro terminar con este problema que es siguiente.
 
Deseo enviar como parametro el valor que contiene un combobox a una consulta, que se encuentra desde una segunda clase (como se mostrara en el codigo), al colocar el parametro en :  
Código:
  public class PagoBL 
    {
        private readonly PagoDA oPagoDA = new PagoDA();
        public IList<Pago> ObtenerPagos()
        {
            return oPagoDA.ObtenerPagos(Convert.ToInt32(cbxseminario.SelectedValue));
        }
  como se ve en el codigo en la parte de cbxseminario me arroja :  
El nombre cbxseminario no existe en el contexto actual 
intente con lo siguiente:  
public class PagoBL : abonos 
trato de heredar los controles de mi clase principal ABONOS, cuando lo hago el error se quita pero a la hora de compilar mi proyecto me arroja un error, sopongo es la manera incorrecta de hacerlo, espero me puedan ayudar, dejare todo mi codigo por alguna cosa, saludos.  
 Código PHP:
    using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Globalization;
 
 
namespace eom
{
    public partial class abonos : Form
    {
        public readonly PagoBL oPagoBL = new PagoBL();
 
        List<Pago> pagos = new List<Pago>();
 
        public abonos()
        {
            InitializeComponent();
            CargarPagos();
          
 
        }
 
 
        private void CargarPagos()
        {
            dataGridView1.DataSource = null;
            dataGridView1.DataSource = oPagoBL.ObtenerPagos();
            
           
        }
 
        public void GenerarPago()
        {
            decimal monto = Convert.ToDecimal(txtimporte.Text);
            List<decimal> fraccionarmonto = new List<decimal>();
            var CuotasPagar = oPagoBL.ObtenerPagos();
            var montoTotal = oPagoBL.ObtenerPagos().Sum(s => s.importe);
            if (monto > montoTotal)
            {
                MessageBox.Show("El monto ingresado es mayor al monto deudor");
                return;
            }
 
            foreach (var cuota in CuotasPagar)
            {
                if (monto == 0)
                    break;
                if (monto > cuota.importe)
                {
                    monto -= cuota.importe;
                    fraccionarmonto.Add(cuota.importe);
                }
                else
                {
                    fraccionarmonto.Add(monto);
                    monto -= monto;
                }
 
            }
           foreach (var pago in fraccionarmonto)
            {
                var CuotaPagar = oPagoBL.ObtenerPagos().Take(1).SingleOrDefault();
                CuotaPagar.importe = CuotaPagar.importe - pago;
                if (CuotaPagar.importe == 0)
                    CuotaPagar.estatus_pago = true;
 
                oPagoBL.ActualizarPago(CuotaPagar);
            }
 
            CargarPagos();
        }
}
 
 
 //Capa Entidades
    public class Pago 
    {
        public int id_saldo { get; set; }
        public decimal importe { get; set; }
        public DateTime fecha_registro { get; set; }
        public Boolean estatus_pago { get; set; }
        public int id_matricula { get; set; }
 
 
    }
 
    //Capa de Negocio
    public class PagoBL : abonos
    {
 
        private readonly PagoDA oPagoDA = new PagoDA();
 
      [I][COLOR="Blue"]  public IList<Pago> ObtenerPagos()
        {
            return oPagoDA.ObtenerPagos(Convert.ToInt32(cbxseminario.SelectedValue));
        }[/COLOR][/I]
 
        public void ActualizarPago(Pago pago)
        {
            oPagoDA.ActualizarPago(pago);
        }
 
 
 
 
        //Capa de Datos
        public class PagoDA 
        {
            
 
 private readonly SqlConnection connection;
 
            private string cadenaconexion = @"micadenitadeconexion....";
            //Constructor
 
            public PagoDA()
            {
                connection = new SqlConnection(cadenaconexion);
            }
 
                  
 
 public IList<Pago> ObtenerPagos(int idmatricula,  Boolean EsPagado = false)
            {
                
                try
                {
                   
                    var resultado = new List<Pago>();
                    var command = new SqlCommand("Select * from consulta_saldos_2 where estatus_pago = 0 and id_matricula = @idmatricula", connection);
                    command.Connection = connection;
                    command.CommandText = "Select * from consulta_saldos_2 Where estatus_pago = @EsPagado and id_matricula  = @idmatricula"; 
                    command.Parameters.Add("@EsPagado", SqlDbType.Bit).Value = EsPagado;
                    command.Parameters.Add("@idmatricula", SqlDbType.Int).Value = idmatricula ;
 
 
                    command.CommandType = CommandType.Text;
                    connection.Open();
                    var reader = command.ExecuteReader();
 
                    while (reader.Read())
                    {
                        resultado.Add(new Pago() { id_saldo = Convert.ToInt32(reader[0]), importe = Convert.ToDecimal(reader[1]), fecha_registro = Convert.ToDateTime(reader[2]), estatus_pago = Convert.ToBoolean(reader[3]), id_matricula = Convert.ToInt32(reader[4]) });
                    }
                    return resultado;
                }
                finally
                {
                    if (connection.State == ConnectionState.Open)
                        connection.Close();
 
                }
 
            }
 
            public void ActualizarPago(Pago pago)
            {
 
                try
                {
                    var command = new SqlCommand();
                    command.Connection = connection;
                    command.CommandText = "Update consulta_saldos_2 set pago = @Monto, estatus_pago = @EsPagado Where id_factura = @IdPago ";
                    command.Parameters.Add("@Monto", SqlDbType.Decimal).Value = pago.importe;
                    command.Parameters.Add("@EsPagado", SqlDbType.Bit).Value = pago.estatus_pago;
                    command.Parameters.Add("@IdPago", SqlDbType.Int).Value = pago.id_saldo;
                    command.CommandType = CommandType.Text;
                    connection.Open();
                    command.ExecuteNonQuery();
                }
                finally
                {
                    if (connection.State == ConnectionState.Open)
                        connection.Close();
 
                }
 
            }
           
        } // public class PagoDA
 
        
    }//public class PagoBL
 
    }//nameespace