在修改对象时填充组合框

时间:2012-10-03 19:02:37

标签: c# .net combobox

我会尽力做到尽可能的直率。我在datagridview上有一个客户列表,而且我有一个表单允许我添加新客户端或修改它。添加新客户端时我没有问题但是在修改时我找不到填充某些文本框和组合框的方法。组合框应该显示我的城市,文本框应该显示我的地址。代码如下

 private void Modificar()
    {
        if (dgCliente.Rows.Count == 0)
        {
            return;
        }
        DataGridViewRow row = dgCliente.SelectedRows[0];
        Cliente cliente = (Cliente)row.Tag;


        tcClientes.SelectedTab = tpGeneral;
        //txtActividad.Text = cliente.Actividad;
        txtApellido.Text = cliente.Apellido;
        if (cliente.Categoria == Categoria.Cliente)
        {
            rbCliente.Checked = true;
        }
        else
        {
            rbProveedor.Checked = true;
        }

        txtCelular.Text = cliente.Telefono.Celular;
        txtTelefonoComercial.Text = cliente.Telefono.TelComercial;
        txtTelefonoDeposito.Text = cliente.Telefono.TelDeposito;
        txtTelPart.Text = cliente.Telefono.TelPart;
        txtFax.Text = cliente.Telefono.Fax;
        txtRazonSocial.Text = cliente.RazonSocial;
        txtCodigo.Text = cliente.Id.ToString();
        txtContacto.Text = cliente.Contacto;
        txtEmail.Text = cliente.Email;
        cliente.CuentaCorriente = new CuentaCorriente();
        txtCuenta.Text = cliente.CuentaCorriente.NumeroCuenta;
        cliente.Domicilio = new Domicilio();
        //cliente.Domicilio.Localidad.CodigoPostal = new CodigoPostal();
        txtCalle.Text = cliente.Domicilio.Calle;
        cliente.Domicilio.Localidad = new Localidad();
        SeleccionarLocalidad(cliente.Domicilio.Localidad);
        txtDepto.Text = cliente.Domicilio.Departamento;
        txtNumero.Text = cliente.Domicilio.Numero;
        txtPiso.Text = cliente.Domicilio.Piso;

        cliente.Domicilio.Localidad = GetLocalidadSeleccionada();
        //cliente.Domicilio.Localidad.Provincia = new Provincia();
        //txtProvincia.Text = cliente.Domicilio.Localidad.Provincia.NombreProv;
        //cliente.Domicilio.Pais = new Pais();
        //txtPais.Text = cliente.Domicilio.Localidad.Pais.NombrePais;            
        cliente.Identificacion = new Identificacion();
        txtNroDni.Text = cliente.Identificacion.Dni;
        txtCuit.Text = cliente.Identificacion.Cuit;
        txtNroCuil.Text = cliente.Identificacion.Cuil;
        txtNroCi.Text = cliente.Identificacion.Ci;
        txtNroLc.Text = cliente.Identificacion.Lc;
        txtNroLe.Text = cliente.Identificacion.Le;
        txtNombre.Text = cliente.Nombre;
        txtObservaciones.Text = cliente.Observaciones;
        txtPagWeb.Text = cliente.PagWeb;
        //cliente.Sexo = new Sexo();
        //cliente.Sexo = GetSexoSeleccionado();
        //cliente.SituacionIva = new SituacionIva();
        //cliente.SituacionIva = GetSituacionAnteIvaSeleccionada();
        txtObservaciones.Text = cliente.Observaciones;

        btnModificarCliente.Enabled = true;
        btnAceptar.Enabled = false;
        tsbGuardar.Enabled = false;
    }

    private void SeleccionarLocalidad(Localidad localidad)
    {
        cbbLocalidad.SelectedItem = localidad;
    }

修改客户信息时,手机,手机或传真的文本框中填充了正确的数据,但文本框中应显示地址(domicilio) 应该显示城市的comboxbox不是....我希望我能够清楚地了解我的关注。请提前帮助和thx。

2 个答案:

答案 0 :(得分:0)

这是客户类

public class Cliente
    {
    public int Id { get; set; }
    public int Codigo { get; set; }
    public string Nombre { get; set; }
    public string Apellido { get; set; }
    public string RazonSocial { get; set; }
    public string Email { get; set; }
    public DateTime FechaIngreso { get; set; } 
    public Domicilio Domicilio { get; set; } // residencial
    public Domicilio DomicilioComercial { get; set; }
    public Domicilio DomicilioFiscal { get; set; } // para envio de facturas o tramites
    public Telefono Telefono { get; set; }
    public Telefono Celular { get; set; }
    public Telefono Fax { get; set; }
    public Telefono TelComercial { get; set; }
    public Telefono TelDeposito { get; set; }
    public string Contacto { get; set; }
    public SituacionIva SituacionIva { get; set; } // Si es resp. inscripto,monotributista o exento      
    public Identificacion Dni { get; set; }
    public Identificacion Cuil { get; set; }
    public Identificacion Cuit { get; set; }
    public Identificacion Lc { get; set; }
    public Identificacion Le { get; set; }
    public Identificacion Ci { get; set; }
    public ListaDePrecios ListaDePrecios { get; set; }
    public Vendedor Vendedor { get; set; }
    public string Actividad { get; set; }
    public Categoria Categoria { get; set; } // Si es cliente, provedor etc
    public Sexo Sexo { get; set; } // Masc o femenino        
    public string PagWeb { get; set; }
    public CuentaCorriente CuentaCorriente { get; set; }
    public string Observaciones { get; set; }
    public Identificacion Identificacion { get; set; }
}

}

答案 1 :(得分:0)

我不确定这是否正确,但似乎这就是你的要求。此方法允许您将文本插入数据网格中的ComboBox单元格。

    private void ChangeComboBoxCellItems(int RowIndex, int ColumnIndex,string TextToAdd)
    {
        //this line finds the correct row and cell
        DataGridViewComboBoxCell ComboBoxCell = (DataGridViewComboBoxCell)dataGridView1.Rows[RowIndex].Cells[ColumnIndex];

        //this line inserts the text into the combobox items
        ComboBoxCell.Items.Add(TextToAdd);

        //This sets the display text to the string you added to the combobox
        ComboBoxCell.Value = TextToAdd;
    }