es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo se pasa un valor de cadena de uno a otro?

Estoy tratando de pasar un valor de un formulario a otro y funciona si asigno texto directamente, pero no funciona cuando obtengo un elemento seleccionado de un cuadro desplegable.

Formulario 2 (no funciona)

public string CBPortname()
{
string commName;
commName = CommPortComboBox.GetItemText(CommPortComboBox.SelectedItem);
return commName; // Parece que este tiene el valor si me desplazo sobre él, pero está en blanco en el cuadro de mensaje
}

Código del Formulario 1

Form2 bob = new Form2();
string CBPN = bob.CBPortName();

MessageBox.Show(CBPN.ToString());

Si lo cambio para que se asigne texto, parece funcionar.

string commName;
commName = “COM1”;
return commName;

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que podría haber un problema con la forma en que se está pasando el elemento seleccionado del cuadro desplegable entre los formularios. Una posible solución sería utilizar una propiedad pública en el Formulario 2 para guardar el elemento seleccionado y luego acceder a esa propiedad desde el Formulario 1. Por ejemplo:

    En el Formulario 2:

    public string SelectedCommPort { get; set; }
    
    public string CBPortname()
    {
        SelectedCommPort = CommPortComboBox.GetItemText(CommPortComboBox.SelectedItem);
        return SelectedCommPort;
    }
    

    En el Formulario 1:

    Form2 bob = new Form2();
    bob.CBPortName();
    string CBPN = bob.SelectedCommPort;
    
    MessageBox.Show(CBPN.ToString());
    

    De esta manera, el elemento seleccionado se guarda en una propiedad pública en el Formulario 2, que luego se puede acceder desde el Formulario 1 después de llamar al método CBPortname.

Comments are closed.