Si vas a copiar

.. y pegar este post en tu web o blog personal, por favor te pido que coloques el link del post de donde lo copiastes:

Fuente:

Recuperar datos entre formularios en C# y VB.NET

9 de febrero de 2010 No hay comentarios.:
En VB6.0 era tan sencillo como esto:

'Form2
txtNombre.Text = frmMain.txtNombre.Text

'O usando una variable publica
txtNombre.Text = frmMain.strNombre


En C# es distinto ya que se manejan clases, supongamos que estas en esta situacion, tienes dos formularios: FormUno.cs y FormDos.cs, el formulario FormUno es el primero en iniciar y tienes dos ComboBox en cada formulario llamados ComboBox1 y ComboBox2 pero quieres que en el FormDos en el evento Load cargue los datos de los CombosBoxes del FormUno sin instanciar el formulario porque recuerda que el FormUno inicia primero:

Codigo C#:

// FormUno.cs
public partial class FormUno : Form
{
    public static string strCombo1 = "";
    public static string strCombo2 = "";

    private void ComboBox1_DropDown(object sender, EventArgs e)
    {
        strCombo1 = ComboBox1.Text;
    }

    private void ComboBox1_DropDownClosed(object sender, EventArgs e)
    {
        strCombo1 = ComboBox1.Text;
    }
    private void ComboBox2_DropDown(object sender, EventArgs e)
    {
        strCombo2 = ComboBox2.Text;
    }

    private void ComboBox2_DropDownClosed(object sender, EventArgs e)
    {
        strCombo2 = ComboBox2.Text;
    }

}


Codigo VB.BET:

' FormUno.cs
Public Partial Class FormUno Inherits Form
   
 Public Shared strCombo1 As String = ""
 Public Shared strCombo2 As String = ""
 Private Sub ComboBox1_DropDown(sender As Object, e As EventArgs)
  strCombo1 = ComboBox1.Text
 End Sub
   
 Private Sub ComboBox1_DropDownClosed(sender As Object, e As EventArgs)
  strCombo1 = ComboBox1.Text
 End Sub
 Private Sub ComboBox2_DropDown(sender As Object, e As EventArgs)
  strCombo2 = ComboBox2.Text
 End Sub

 Private Sub ComboBox2_DropDownClosed(sender As Object, e As EventArgs)
  strCombo2 = ComboBox2.Text
 End Sub

End Class


Declarar dos variables publicas y estaticas en la clase para asi acceder directamente a ellas, ademas si los CombosBoxes cambian de Texto hay que declarar los eventos DropDown y DropDownClosed para guardar instantaneamente el texto en la variable y asi quedaria el FormDos:

Codigo C#:

public partial class FormDos : Form
{

    private void FormDos_Load(object sender, EventArgs e)
    {
        /** Sin necesidad de instanciar el FormUno se puede acceder a los datos **/
        this.Combo1.Text = FormUno.strCombo1;
        this.Combo2.Text = FormUno.strCombo2;
    } 

}


Codigo VB.NET:

Public Partial Class FormDos Inherits Form

    Private Sub FormDos_Load(sender As Object, e As EventArgs)
        ' Sin necesidad de instanciar el FormUno se puede acceder a los datos
        this.Combo1.Text = FormUno.strCombo1
        this.Combo2.Text = FormUno.strCombo2
    End Sub

End Sub


NOTA: codigos convertidos gracias a esta aplicacion


Publicado en tttony.blogspot.com

Buscar en el Blog



PUBLICIDAD